使用gruntjs优化早于X天的图像

使用gruntjs优化早于X天的图像,gruntjs,Gruntjs,我今天早上在一个论坛上寻找压缩图片的方法时发现了Grunt。有没有办法指定Grunt的日期范围?我希望能够每月运行一次cron,并告诉Grunt压缩文件夹中的任何图像,包括超过X天的子文件夹,但当然也不要去重新压缩过去已压缩的任何图像。有一个名为的插件,用于处理图像优化。Grunt没有一种特定的方法来设置像cron任务中那样的日期范围。您需要在grunfile.js配置中使用一些自定义JavaScript来实现这一点 grunfile.js 您的自定义grunfile.js可以按如下方式配置:

我今天早上在一个论坛上寻找压缩图片的方法时发现了Grunt。有没有办法指定Grunt的日期范围?我希望能够每月运行一次cron,并告诉Grunt压缩文件夹中的任何图像,包括超过X天的子文件夹,但当然也不要去重新压缩过去已压缩的任何图像。

有一个名为的插件,用于处理图像优化。Grunt没有一种特定的方法来设置像cron任务中那样的日期范围。您需要在
grunfile.js
配置中使用一些自定义JavaScript来实现这一点


grunfile.js

您的自定义
grunfile.js
可以按如下方式配置:

module.exports=函数(grunt){
"严格使用",;
var lstatSync=require('fs')。lstatSync,
utimes=require('fs')。utimes,
LOGPATH='./.optimizeImagesLog.json',
daysAgo=grunt.option('daysAgo')| | 30,//默认为30天。
nowDate=日期。现在(),
maxDate=nowDate-(daysAgo*24*60*60*1000),
minDate,
原始奇数=[],
优化文件=[],
isFirstRun=false;
/**
*如果存在“…Log.json”,则“optimizeImages”任务以前已运行。到
*帮助避免重新处理已指定“lastMaxMs”值的图像
*第一次运行任务时,“…Log.json”还没有
*存在,因此没有必要绕过图像的再处理。
*/
试一试{
minDate=grunt.file.readJSON(LOGPATH.dates.lastMaxMs);
}捕获(e){
isFirstRun=true;
}
/**

*Check files modified date为Hi@MitchellK,假设您每月运行一次cron,您是否希望仅优化上个月内创建/修改的图像(即仅优化自cron上一次运行一个月以来创建/修改的图像)?抱歉如果这是一个愚蠢的问题,我只是想了解您的需求逻辑和什么“早于X天”真的是这样吗?嗨@RobC谢谢你的回复。希望我能解释得更好一点。我希望Grunt能够被赋予一个变量。让我们在这个例子中说90天。所以cron应该取今天的日期,然后优化指定文件夹和比今天早90天的子文件夹中的任何图像。这基本上是一种压缩la的方法rge图片发布到对话论坛,主题已经老化或关闭。太棒了,非常感谢您提供如此详细的回复和回答。我一定会在早上看这些图片,并在我刚刚设置的新测试服务器上玩这些图片。我会回复:)我很高兴!不过,刚刚再次阅读您的文章,我很确定我误解了我的答案优化了给定天数之前日期较新的任何图像。我想你真正想要的是优化给定天数之前日期较旧的任何图像的方法?嗨,Rob,是的,我确实想优化比给定x天数更早的图像。老实说,我现在还没有机会看到这一点在过去的6个星期里,我一直在奔波于医院,我的父亲病得很重。但我希望在周日能看到这样的情况。对于延误,我深表歉意。