1

それぞれに関連する子テーマと変数のJSONファイルを読み取り、grunt.jsを介して動的に生成されたビルドプロセスを持つことは可能ですか?

具体的にはgrunt.initConfig()、外部ファイルのJSONオブジェクトごとthemes.jsonに、メインのビルドプロセス全体を繰り返したいのですが、grunt.initConfig() 各子テーマに関連付けられたメタを介して変数(常に同じではない)をビルドプロセスに渡す必要があります。 。

私はそれを処理するのに多くの時間を費やしました、そして私はgrunt.jsちょうど私が探しているビルドプロセスに対応できないと思い始めています。このようなカスタムメタ値でミラー化された階層を作成することで、私は考えました

module.exports = function(grunt) {
  grunt.initConfig({
    pkg: '<json:package.json>',
    _themes: '<json:themes.json>',
    recess : 'foo',
    concat : 'bar',
    mincss : 'baz
}

次に、themes.jsonその構造を再びミラーリングしますが、このようにルート構成ファイルを呼び出します

   {
   "themFoo" : {
      "_meta_val_1" : "x",
      "_meta_val_2" : "y",
      "_meta_val_3" : "z",
      "recess" : "<%= recess %>",
      "concat" : "<%= concat %>",
      "mincss" : "<%= min %>"
    }

デフォルトの設定を取得して、空白にテンプレート変数を入力することはできますが、そのようには機能しないようです。

4

1 に答える 1

2

Grunt.jsの作者であるBenAlmanは、私が上で概説したことを実行しようとしている人のために、ここでそれを説明してくれました。

https://github.com/gruntjs/grunt/issues/568#issuecomment-11335941

基本的に、私はこれについて間違って取り組んでいましたが、JSON構造がトップレベルで交渉できないことに気づいていませんでした。オプションまたは複数のファイル、出力などをトップレベル関数の下にネストすることができますが、これらのトップレベルJSONデータ項目はネイティブ関数および拡張機能用に予約されています。

上記で概説したことをどのように達成できたかの要点は次のとおりです: https ://gist.github.com/4294776

于 2012-12-13T15:06:10.373 に答える