我正在开发一个 ES6 AngularJS 项目,我使用 webpack 将所有内容捆绑到dist/app.js
.
我正在使用的 CI/CD 堆栈是 SCM - Jenkins - Octopus:
对我的代码的更新被推送到存储库
Jenkins 克隆存储库、调用
npm install
以及gulp
用于gulp-webpack
从一个入口点捆绑和缩小所有内容并将其放入dist/app.js
- 构建后,Jenkins 将应用程序打包成一个 nuget pkg 并将其推送到 Octopus Deploy,在其中将应用程序部署到 IIS
章鱼项目在多个环境中工作,我必须有一种方法来根据环境替换一些配置变量。为此,Octopus 提供了“替换文件中的变量”部署步骤。
当我不使用模块捆绑器和 ES6 时,我只会有一个配置文件来设置一些我然后使用的角度常量。我会有一个config.js
文件和一个config.template.js
文件。Octopus 将替换config.template.js
文件中的变量,我只需将其设置为部署后config.js
替换。config.template.js
然而,现在我只是使用一个普通config.js
的导出我需要使用的变量,然后我将其导入到相关的文件中(比如一个包含角度控制器函数的文件)。
使用此设置,我无法像以前那样进行替换,因为我的config.js
将被包含在dist/app.js
. 谁能帮我想出一个如何实现这一目标的策略?我正在考虑在构建之前进行config.js
-config.template.js
交换,然后让 Octopus 替换整个app.js
包中的变量,但这似乎效率很低。