10

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

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

私が参照しているプロジェクトは、次のようなディレクトリ階層に存在します。

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

rootレベルで共通の構成設定を提供する方法はありますか?

4

1 に答える 1

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オブジェクトであることを忘れないでください:)

于 2012-11-19T21:06:11.490 に答える