0.3で動作するgrunt.jsファイルにいくつかのコードがありますが、0.4で中断します。
{
dest: '<%= process.env.DEST %>/index.html'
}
0.3ではプロセスが定義されているので、テンプレート内の環境で定義された変数にアクセスできます。他のプラグインにファイルパスを渡す。
0.4で機能する代替アプローチはありますか?または、テンプレートのレンダリング中にブレークポイントを挿入して、使用可能な変数を確認する方法はありますか?
デフォルトのデータは設定オブジェクトです 。環境変数を設定オブジェクトに追加するか、直接使用することができます。
grunt.initConfig({
destination: process.env.DEST,
task: {
target: {
dest: '<%= destination %>/index.html'
}
},
});
または
grunt.initConfig({
task: {
target: {
dest: process.env.DEST + '/index.html'
}
},
});
これはシンドレの素直な答えです。または、次のようにすることもできます(grunt-envプラグインを使用します: https://npmjs.org/package/grunt-env )-
grunt.initConfig({
env : {
test : {
DEST : 'testDEST'
},
dev : {
DEST : 'devDEST'
},
qa : {
DEST : 'qaDEST'
},
prod : {
DEST : 'prodDEST'
}
}
});
grunt.registerTask('setenvs', 'Set environment variables', function() {
grunt.config('ENVS', process.env);
});
次に使用します
{
dest: '<%= ENVS.DEST %>/index.html'
}
あなたの仕事は-
grunt.registerTask('default', [
'env:dev',
'setenvs'
'yourTask'
]);
<%= ... %>
を使用できるように代替アプローチを提案しました。initConfigでハードコーディングする必要はありません。ユーザーからの入力として受け取り、envに渡すことができるenvのターゲット。