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('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
не имеет никакого эффекта
1 ответ
Не понимаю этого, но моя логика была перевернута, это работает:
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;
}
}
};