2

grunt.template.process() を使用して、index.tmpl ファイルから 1 つの index.html ファイルを作成します。

現在、基本的に 2 つの異なるビルドがあります。開発ビルド (非縮小) とリリース ビルド (縮小) です。grunt develor経由で grunt に渡すタスクに基づいてgrunt release、index.tmpl 内でインライン化するスクリプトを変更したいと考えています。現在、手動で行っており、必要に応じて対応する行のコメントを外しています。

index.tmpl:

<%
var ownJsFile = grunt.config('uglify').dist.dest;
//var ownJsFile = grunt.config('concat').dev.dest;
...
%>

しかし、私はむしろ次のようなものが欲しいです:

if (TASK == 'release')
    var ownJsFile = grunt.config('uglify').dist.dest;
else
    var ownJsFile = grunt.config('concat').dev.dest;

しかしTASK、テンプレートの内部を取得する方法は?

4

1 に答える 1

1

grunt.template.process(template, { data: ... } ) に任意のデータを渡すことができます。たとえば、grunt.task.current.name を使用してタスク名を挿入できます。次に例を示します。

https://gist.github.com/sheenobu/5722360

タスクが release-task と devel-task の下に 2 回登録されていても、同じことを繰り返さない限り問題ありません。とはいえ、テンプレートの動作をタスク名にバインドするのは最善ではありません。代わりに、minify=true または uglify=true を grunt.template.process に渡すことができます。

于 2013-06-06T15:24:52.030 に答える