为不同的构建环境(如QA、UAT、生产)管理JavaScript配置文件

5

您正在使用JavaScript构建一个独立的单页面应用程序,该应用程序以静态方式提供服务,并连接到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插件可以设置构建模式,但我没有找到任何能够更新配置文件的插件,只有改变指向哪个文件的hack方法。
ASP.NET拥有web.config转换功能,可以完美地实现此功能。例如,发布转换中的任何属性都会覆盖打包时的“默认”配置。是否存在类似的工作流程,可以使用grunt或其他工具实现此功能呢?

1
为什么要踩我?对我来说这似乎是一个直截了当的问题。 - Shanimal
像 https://www.npmjs.com/package/grunt-environment 这样的东西是否有帮助? - Shanimal
https://dev59.com/0Gct5IYBdhLWcg3wCJF- - Shanimal
1个回答

1
最终我通过使用环境变量和一个叫做Confidence的神奇的Node解决了这个问题。在这个工具中,你可以将所有不同的env配置设置放入一个单独的文件中,并基于过滤器(例如环境变量)将它们解析为单个配置 - 然后可以使用像WebPack这样的工具将其注入到构建过程中。请保留html标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接