我们正在使用grunt.js作为构建实用程序,我们被要求让它区分生产版本和开发版本。
要求是我们有一个大型API连接到两者之间,它们需要两个独立的域。例如,dev.com或prod.com。
你如何使用grunt来代替dev或prod之间的不同域(在源代码中)?
换句话说,作为dev / prod构建过程的结果,grunt如何有条件地配置动态域名并在源代码中替换它?
更新:看起来像grunt-string-replace或grunt-replace可能就是答案......
关于此的任何输入?
答案 0 :(得分:1)
Grunt在节点中运行,当你在prod中运行node时,你设置NODE_ENV=production grunt
(在命令提示符下)。您应该能够通过process.env.NODE_ENV
从grunt文件中访问变量。您可以随意命名您的环境,但生产和开发非常标准(我还使用本地在我的本地计算机上进行开发)。
您也可以传递自己的自定义参数:grunt --param=value
,然后在您的grunt文件中通过grunt.option("param"); // => "value"
答案 1 :(得分:1)
https://www.npmjs.org/package/grunt-string-replace
试一试......
这里的令牌取代了答案的一部分:
//STRING-REPLACE-.
//Domain-Tokens for different builds. Multiple file, multiple replacement.
,
'string-replace': {
dist: {
files: {
'dest/': 'tokenreplace.js'
},
options: {
replacements: [
{
pattern: 'Domain-Token',
replacement: 'hello from domain token.'
}]
}
}
}