您可以执行以下操作:
-
在每个任务的外部作用域中声明一个变量,并为其分配一个空数组。例如:
var cachedFileNames = [];
-
然后在
rename
的功能
copy
任务中,将每个动态生成的文件名存储在
cachedDirNames
通过利用
Array.push()
方法例如:
cachedFileNames.push(fileName);
-
中的文件名
cachedFileNames
阵列现在可以在其他任务中重用
(如自定义
logFileNames
以下任务)
.
Grunfile文件。js公司
以下内容
Gruntfile.js
gist说明了上述第1-3点:
module.exports = function (grunt) {
var cachedFileNames = [];
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.initConfig({
copy: {
dist: {
files: [{
expand: true,
cwd: 'tmp/output/',
src: ['*.html'],
dest: 'dist',
rename: function(dest, src) {
var d = new Date();
var mh = d.getMonth() + 1;
var dy = d.getDate();
var yr = d.getFullYear();
var fileName = yr + "_" + mh + "_" + dy + "_" + src;
cachedFileNames.push(fileName);
return dest + "/" + fileName;
}
}]
}
}
});
grunt.registerTask('logFileNames', function() {
cachedFileNames.forEach(function(fileName) {
grunt.log.writeln(fileName);
})
})
grunt.registerTask('default', [ 'copy', 'logFileNames' ]);
};