我在 grunt.js 文件中有一些代码,它与 0.3 一起使用,但在 0.4 上中断:
{
dest: '<%= process.env.DEST %>/index.html'
}
在 0.3 中定义了进程,因此当我将文件路径传递给其他插件时,我可以访问模板内环境中定义的变量。
是否有另一种方法可以在 0.4 中使用?或者一种在模板渲染时放置断点的方法,以便我可以看到哪些变量可用?
我在 grunt.js 文件中有一些代码,它与 0.3 一起使用,但在 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。