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

Managing JavaScript config files for different build environments (like QA, UAT, Production)

因此,您正在 JavaScript 中构建一个静态提供的独立单页应用程序。它连接到 API.

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

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

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

您的产品 API url 是 http://api.example.com,当您进行发布构建时,您只想更改配置中的这个值。 (也许您也想更改其他配置参数)。您有一个发布配置

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

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

ASP.NET 有 web.config 转换正是这样做的,例如,发布转换中的任何 属性 都会覆盖打包时的 'default' 配置。使用 grunt 或其他东西是否存在这样的工作流程?

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