Grunt Uglify无法访问闭包中的代码

时间:2014-06-18 22:26:42

标签: gruntjs uglifyjs

编辑:这个问题实际上似乎特定于uglifyjs本身。在http://lisperator.net/uglifyjs/等在线工具中运行代码会产生相同的结果

我有一个简单的任务,简单地连接一些文件然后使用uglify来缩小生成的文件。

提交a:

console.log('this is file a');

文件b:

(function () {
    console.log('this is file b');
});

concat工作正常,我在dist目录(testout.js)中得到了连接文件,如下所示:

(function () {
    console.log('this is file b');
});
console.log('this is file a');

uglify任务运行并生成testdist.min.js。看起来像这样:

console.log("this is file a");

没有包含文件b中的代码!一旦我从文件b中删除了闭包,第二个console.log就包含在uglify的输出中。

这是整个grunt文件。

module.exports = function (grunt) {

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),



    concat: {

        test: {
             src: [
                'src/filea.js',
                'src/fileb.js'
            ],
            dest: 'dist/testout.js'

        },

    },

    uglify: {
        thing: {
            files: {
              'dist/testdist.min.js' : ['dist/testout.js'] 
            }
       }

    },


    watch: {

        js: {
            files: ['src/*.js'],
            tasks: ['concat','uglify']
        }
    }
});


grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-jshint');

grunt.registerTask('default', ['watch']);

}

0 个答案:

没有答案