动态dev或prod API域令牌的Grunt配置替换?

时间:2014-11-25 22:58:58

标签: javascript gruntjs

我们正在使用grunt.js作为构建实用程序,我们被要求让它区分生产版本和开发版本。

要求是我们有一个大型API连接到两者之间,它们需要两个独立的域。例如,dev.com或prod.com。

你如何使用grunt来代替dev或prod之间的不同域(在源代码中)?

换句话说,作为dev / prod构建过程的结果,grunt如何有条件地配置动态域名并在源代码中替换它?

更新:看起来像grunt-string-replace或grunt-replace可能就是答案......

关于此的任何输入?

2 个答案:

答案 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

  • 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.'
      }]
    }
  }
}