我在文件数组中遇到多个对象的问题。我有两组文件需要运行uglify
,一组是需要压缩的单个文件,另一组是一组文件。问题是,任务一直说没有定义源文件。src
和是相同的dest
,因为文件是就地压缩的 - 这是以前工作的,当我引入模板时出现了问题。我设置了一个简单的测试任务来验证。这是任务配置:
buildDir: "bin",
build: {
test: {
files: [
{
src: ["<%= buildDir %>/js/vendor.js"],
dest: "<%= buildDir %>/js/vendor.js"
},
{
expand: true,
src: ["<%= buildDir %>/js/**/main.js"],
dest: ["<%= buildDir %>/js/**/main.js"]
}
]
}
}
这是我的简单测试任务:
grunt.registerMultiTask('build', function() {
console.log(this.files); // Shows first object only
console.log(this.filesSrc); // Blank
this.files.forEach(function(file) {
grunt.log.writeln("Src: " + file.src); // Blank
grunt.log.writeln("Orig: " + file.orig.src); // bin/js/vendor.js
file.src.forEach(function(filePath) {
grunt.log.write("Checking: " + filePath);
if (!grunt.file.exists(filePath)) {
grunt.log.warn("Not found!");
} else {
grunt.log.warn("File found!");
}
});
grunt.log.writeln("Dest: " + file.dest);
});
return false;
});
files 数组中的第二个对象在任务中根本不存在,第一个对象具有空白src
属性。