我最近用一个非常简单的解决方案解决了这个问题。
我实施grunt.config.merge(config)
了替换grunt.initConfig(config)
. 您可以多次调用它,它只会将配置合并到一个配置中。
更新:从 Grunt v0.4.5 开始,该grunt.config.merge
函数是内置的,因此您不再需要将其作为单独的库包含。
这允许我按功能组织我的配置。
我为每个功能创建一个配置文件,例如desktop-javascripts.js
, desktop-css.js
, mobile-javascripts.js
, mobile-css.js
.
此外,它们在 中共享通用配置default-options.js
,因此我可以指定压缩设置等等。
例子
Gruntfile.js:
module.exports = function(grunt) {
require('./default-options.js')(grunt);
require('./desktop-javascripts.js')(grunt);
require('./desktop-css.js')(grunt);
require('./mobile-javascripts.js')(grunt);
require('./mobile-css.js')(grunt);
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
};
桌面-javascripts.js:
module.exports = function(grunt) {
// Configure all JavaScript tasks:
grunt.registerTask('desktop-javascripts', [ 'concat:JS', 'jshint' ]);
grunt.config.merge({
concat: { 'JS': { files: allJS } },
jshint: { 'JS': { files: allJS } },
watch: { 'JS': { files: allJS, tasks: [ 'desktop-javascripts' ] } }
});
};