2012-11-19 8 views
10

複数のプロジェクトでGruntの一般的な設定オプションをどのように処理しますか?プロジェクトはいくつかの一般的な設定オプションを共有します。 minについては、プライベートまたはカスタムのプロジェクトあたりの設定値があります。 3つのプロジェクトのうち1つだけがlessを必要とするか、またはオプションが異なります。grunt.js設定の共通設定オプションの継承

継承を使用して既存のファイルをインポートするプロジェクト間でこの共通の構成を共有する方法はありますか、各プロジェクトですべての設定を定義する必要はありますか?私が参照してる

プロジェクトは

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

のようなディレクトリ階層に存在するでしょうrootレベルでの一般的な構成設定を提供するために、いくつかの方法はありますか?

答えて

10

設定は、必要な数の外部JSONファイルに簡単に保存できます。 grunt.file.readJSONがお手伝いします。例えば: - /」 `VARの設定は、(__ dirnameの+を必要=

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

オブジェクトあるであることを忘れてはいけませんmin-common.json ");' –

関連する問題