grunt-contrib- ugly输出为空



我一整天都在寻找答案,我确信这只是我的配置一团糟。

短版:我已经配置了grunt。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

…但它是空的。

你知道我做错了什么吗??这种语法完全遵循自述文件和我能找到的任何其他文档中的语法。连接任务运行正常。

任何帮助都会很感激。谢谢!

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

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

<标题> 更新

我找到了它输出空文件的原因。显然,自我调用的匿名函数被"最小化"了,或者至少在这种情况下是这样。这可能是因为这里没有活动代码。我要进一步调查一下。我假设实际做事情的函数,引用全局变量等将保留。

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

<标题>最后更新

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

问题解决。即使使用最小化所有代码的选项,它仍然会删除任何未引用的变量,等等。我的测试文件中的内容是未使用的。如果我给这些函数添加一个引用,它们就会显示出来。因为没有任何函数被引用,所以它们被删除,最后得到一个空文件。

最新更新