我在grunt.js文件中有一些代码,它使用0.3但在0.4上打破:
{
dest: '<%= process.env.DEST %>/index.html'
}
在0.3过程中定义,因此我可以访问模板内部环境中定义的变量。将文件路径传递给其他插件。
是否有另一种方法可以在0.4中使用?或者在模板渲染时放置断点以便我可以看到哪些变量可用?
答案 0 :(得分:53)
The default data is the config object。您可以将环境变量添加到配置对象中,也可以直接使用它。
grunt.initConfig({
destination: process.env.DEST,
task: {
target: {
dest: '<%= destination %>/index.html'
}
},
});
或
grunt.initConfig({
task: {
target: {
dest: process.env.DEST + '/index.html'
}
},
});
答案 1 :(得分:0)
这是辛德雷的一个很好的直接回答。或者你也可以(使用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。