【发布时间】:2016-11-11 06:38:34
【问题描述】:
我正在开发一个 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 包中的变量,但这似乎效率很低。
【问题讨论】:
标签: javascript jenkins webpack octopus-deploy variable-substitution