2012-11-19 55 views
10

人們如何處理Grunt中的多個項目的常見配置選項。這些項目將共享一些常見的配置選項,例如爲min,但也有私人定製每個項目的配置設置,例如,三個項目中只有一個需要less或具有不同的選項。grunt.js配置中的常見配置選項的繼承

有沒有辦法在項目之間共享這種通用配置,使用繼承或導入現有文件,還是每個項目都必須定義所有設置?

我指的是將居住在像

root 
    module1 
     grunt.js 
    module2 
     grunt.js 
    module3 
     grunt.js 

是否有某種方式在root水平提供通用的配置設置的目錄層次結構中的項目?

回答

10

您可以根據需要輕鬆地將配置存儲在儘可能多的外部JSON文件中。 grunt.file.readJSON會幫助你在這裏。例如:

module.exports = function(grunt) { 

    var concatConf = grunt.file.readJSON('../concat-common.json'), 
     minConf = grunt.file.readJSON('../min-common.json'); 

    // do whatever you want with concatConf and minConf here 
    // ... 

    // Project configuration. 
    grunt.initConfig({ 
    pkg: '<json:grunt-sample.jquery.json>', 
    meta: { 
     banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' + 
     '<%= grunt.template.today("yyyy-mm-dd") %>\n' + 
     '<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' + 
     '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + 
     ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */' 
    }, 

    concat: concatConf, 
    min: minConf 

    // ... 
    }); 

    // Default task. 
    grunt.registerTask('default', 'concat min'); 

}; 

不要忘記,gruntfile是在節點執行常規的JavaScript文件中的環境和配置選項是常規的JavaScript對象:)

+1

而且 - '無功配置=需要(__目錄名稱+「/最小common.json「);' –