Gruntjs grunt contrib丑陋输出为空

Gruntjs grunt contrib丑陋输出为空,gruntjs,grunt-contrib-uglify,Gruntjs,Grunt Contrib Uglify,我一整天都在这里寻找答案,我确信这只是我的配置混乱 简短版本: 我有咕噜声。grunt contrib concat公司。grunt contrib uglify说它可以工作,但输出一个空文件 长版本: 项目结构为: /projectRoot ->/dev ->/js /foo.js /bar.js ->/dist ->/js 我想获取foo.js和bar.js并将它们输出到

我一整天都在这里寻找答案,我确信这只是我的配置混乱

简短版本: 我有咕噜声。grunt contrib concat公司。grunt contrib uglify说它可以工作,但输出一个空文件

长版本: 项目结构为:

/projectRoot
    ->/dev
        ->/js
            /foo.js
            /bar.js
    ->/dist
        ->/js
我想获取foo.js和bar.js并将它们输出到/dist/js目录中名为“app.js”的文件中

这是我的配置:

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        concat: {
            options:{
                separator: ';'
            },
            dist:{
                src:["js/foo.js", "js/barjs"],
                dest:"../prod/js/app.js"
            }
        },

        uglify:{
            dist:{
                files:{
                    "../prod/js/app.min.js":["js/foo.js", "js/bar.js"]
                }
            }
        }
    });



    /**
     * Set up tasks
     * @type {string[]}
     */
    var taskList = [
        "grunt-contrib-concat",
        "grunt-contrib-uglify"
    ];

    for(var task in taskList){
        grunt.loadNpmTasks(taskList[task]);
    }

    grunt.registerTask('default', ['concat']);
    grunt.registerTask('dist', ['concat','uglify:dist']);
};
是的,Grunt安装在我的DEV目录中

当我跑的时候

grunt dist
我得到以下控制台输出:

Running "concat:dist" (concat) task
File ../prod/js/app.js created.

Running "uglify:dist" (uglify) task
File js/app.min.js created: 319 B → 0 B

Done, without errors.
Process finished with exit code 0
最后,它确实创建了文件/projectRoot/prod/js/app.min.js

……但它是空的

你知道我做错了什么吗??此语法完全遵循自述文件和我能找到的任何其他文档中的语法。concat任务运行得很好

任何帮助都将不胜感激。 谢谢

--编辑-- 我更新了Grunt,使其位于projectRoot中,但输出没有差异

==============

更新 我找到了它输出空文件的原因。显然,自调用匿名函数被“缩小”了,或者至少在本例中是这样。这可能是因为这里没有活动代码。我将进一步研究这个问题。我假设实际做事情的函数,引用全局变量等将保留

==============

最后更新
问题解决了。即使有缩小所有代码的选项,它仍然会删除任何未引用的变量等。我的测试文件中的内容没有使用。如果我添加对上述函数的引用,它们就会显示出来


希望这对某人有所帮助。

问题已解决。即使有缩小所有代码的选项,它仍然会删除任何未引用的变量等。我的测试文件中的内容没有使用。如果我添加对上述函数的引用,它们就会显示出来。由于没有引用任何函数,因此会将它们删除,最终得到一个空文件


希望这对其他人有所帮助。

您的配置和控制台输出似乎都表明,uglify将把新文件放在与源文件相同的目录中(在/dev/js中)。但是,您可以说该文件是在/prod/js树中创建的。这里有打字错误吗?啊,是的,在我发帖前胡闹的时候,我一定改变了最终的输出目录。现在更新。在您的
uglify
设置中,您是否提供路径“jas/foo.js”或“dev/jas/foo.js”?已修复,请检查注释。这是一个参考问题。Grunt删除了我所有的代码,因为它们都没有被实际使用。