Grunt源文件是空白的

时间:2015-03-31 15:12:36

标签: gruntjs grunt-contrib-uglify

我在文件数组中遇到多个对象的问题。我有两组需要运行uglify的文件,一个是需要压缩的单个文件,另一个是一组文件。问题是,任务一直说没有定义源文件。 srcdest是相同的,因为文件是就地压缩的 - 这在以前工作,当我介绍模板时出现问题。我设置了一个简单的测试任务来验证。这是任务配置:

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;
});

文件数组中的第二个对象根本不存在于任务内部,第一个对象具有空白src属性。

1 个答案:

答案 0 :(得分:0)

我弄明白了这个问题。在已经生成Files对象之后,我正在更改CWD ,因为这在任务运行之前发生。如果您想拥有一个动态工作目录,则需要在一个任务中更改它,然后再调用剩余的任务。这是一个惊人的夜晚休息将清除大脑。 :)