将所有文件编译为一个,但不压缩

时间:2013-11-11 19:05:53

标签: javascript gruntjs

我对GruntJS有点新意,目前正在将Uglify添加到我的项目中。

我已将其设置为将所有JS编译在一个文件中,但是对于开发时间,我希望不要压缩代码。

the doc,我看到它有一个布尔选项,但即使是:

...
options: {
  compress: false
}
...

它仍会压缩它。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我使用grunt-contrib-concat进行连接,然后使用grunt-contrib-uglify来缩小生成的连接文件。

作为参考,我的concat任务看起来像这样:

concat : {
    options : {
        stripBanner : true
},
    head : {
        src : [header1.js, header2.js, header3.js],
        dest : ['/path/to/js/tmpfolder/', '<%=pkg.name %>.header.js'].join('/')
    },
    app : {
       src : [app1.js, app2.js, app3.js],
       dest : ['/path/to/js/tmpfolder/', '<%=pkg.name %>.app.js'].join('/')
    }
}

和我的uglify任务是这样的:

uglify : {
    all : {
        options : {
            banner : "/*! <%= pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today(\"yyyy-mm-dd\") %> \n <%= pkg.author %> */",
            dead_code : true
    },
        files : uglifyFiles
     }
}

这很烦人,但我还需要定义uglifyFiles,我喜欢这样:

uglifyFiles = {};
uglifyFiles['/path/to/js/tmpfolder/<%=pkg.name %>.header.min.js'] =  '/path/to/js/tmpfolder/<%=pkg.name %>.header.js';
uglifyFiles['/path/to/js/tmpfolder/<%=pkg.name %>.app.min.js'] = '/path/to/js/tmpfolder/<%=pkg.name %>.app.js';