Javascript Grunt contrib复制临时禁用路径筛选器
嗨,我在用这个过滤器Javascript Grunt contrib复制临时禁用路径筛选器,javascript,gruntjs,grunt-contrib-copy,Javascript,Gruntjs,Grunt Contrib Copy,嗨,我在用这个过滤器 var fs = require('fs'); function onlyNew(target) { return function(filepath) { var src = fs.statSync(filepath).mtime.getTime(); var dest = grunt.config(target.concat('dest')) + filepath.slice(grunt.config(target.concat('cw
var fs = require('fs');
function onlyNew(target) {
return function(filepath) {
var src = fs.statSync(filepath).mtime.getTime();
var dest = grunt.config(target.concat('dest')) +
filepath.slice(grunt.config(target.concat('cwd')).length);
dest = fs.statSync(dest).mtime.getTime();
return src > dest;
}
};
在以下调用grunt contrib copy
copy: {
all: {
src: 'mysource/reset.html',
dest: 'mydest/reset.html',
filter: onlyNew(['copy', 'all'])
},
},
这非常有效,仅当源文件比目标文件新时才进行复制。但是,如何临时禁用这些过滤器以强制复制
我尝试将“onlyNew”筛选器设置为:
function onlyNew(target) {
if (grunt.option('forceCopy'))
return true;
else {
return function(filepath) {
var src = fs.statSync(filepath).mtime.getTime();
var dest = grunt.config(target.concat('dest')) +
filepath.slice(grunt.config(target.concat('cwd')).length);
dest = fs.statSync(dest).mtime.getTime();
return src > dest;
}
}
};
但是运行
grunt--forceCopy没有任何效果我不明白这一点,但我的逻辑颠倒了,这是可行的:
function onlyNew(target) {
if (grunt.option('forceCopy'))
return false;
else {
return function(filepath) {
var src = fs.statSync(filepath).mtime.getTime();
var dest = grunt.config(target.concat('dest')) +
filepath.slice(grunt.config(target.concat('cwd')).length);
dest = fs.statSync(dest).mtime.getTime();
return src > dest;
}
}
};