管理不同构建环境(如QA,UAT,Production)的JavaScript配置文件

时间:2015-09-17 19:45:11

标签: javascript build-process single-page-application release-management

因此,您正在构建一个静态服务的独立单页应用程序。它连接到API。

您的应用程序在main.js中有一个JSON对象,如下所示:

var config = {
 apiPath: 'http://dev.api.example.com',
 appTitle: 'hello'
};

您使用Grunt创建发布版本,这会将您的所有SASS,ES6,AMD模块等代码转换为一个或两个JavaScript文件以及此配置对象。

您的生产API网址为http://api.example.com,当您执行发布版本时,您希望配置中的此值更改。 (也许你也想改变其他配置参数)。你有一个发布配置

var config = {
 apiPath: 'http://api.example.com'
};

如何在构建期间根据不同类型的发布环境更改JavaScript配置文件。请注意,我想将发布配置合并为默认值,使用所有设置维护完全独立的文件。虽然有用于设置构建模式的grunt插件,但我没有找到任何能够更新配置文件的插件,只有黑客可以更改指向哪个文件。

ASP.NET有web.config转换完成此操作,例如,发布转换中的任何属性都将覆盖打包时的'default'配置。这样的工作流程是否存在使用grunt或其他什么?

1 个答案:

答案 0 :(得分:0)

最后,我通过使用环境变量和一个名为Confidence的神奇节点的组合来解决自己的问题,在这个节点中,您将所有不同的envs配置设置放在一个文件中,并将它们解析为单个基于过滤器的配置(例如环境变量) - 然后可以使用WebPack等工具将这些注入到构建过程中。