Javascript jenkins中网页包装的config.js中章鱼变量替换策略
我正在一个ES6 AngularJS项目中工作,我正在使用webpack将所有内容打包到Javascript jenkins中网页包装的config.js中章鱼变量替换策略,javascript,jenkins,webpack,octopus-deploy,variable-substitution,Javascript,Jenkins,Webpack,Octopus Deploy,Variable Substitution,我正在一个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,在那里应用程序被部署到
dist/app.js
我正在使用的CI/CD堆栈是SCM-Jenkins-Octopus:
npm install
和gulp
,使用gulp webpack
从一个入口点捆绑和缩小所有内容,并将其放入dist/app.js
config.js
文件和一个config.template.js
文件。Octopus将替换config.template.js
文件中的变量,我将其设置为在部署后用config.template.js
替换config.js
然而,现在我只使用一个普通的config.js
,它导出我需要使用的变量,然后将这些变量导入相关的文件(比如包含角度控制器函数的文件)
有了这个设置,我不能像以前那样进行替换,因为我的
config.js
将包含在dist/app.js
中。有谁能帮我想出一个如何实现这一目标的策略吗?我想在构建之前交换config.js
-config.template.js
变量,然后让Octopus替换整个app.js
包中的变量,但这似乎效率很低 我们在构建过程中也遇到了类似的问题,同样感到困惑。我们决定使用JS本身来确定令牌是否已被替换,从而使其在本地dev(预部署)中工作
我们添加了如下代码:
// config --------------------------
(function () {
// These values will be replaced by Octopus during deployment.
var configuredApiUrl = "#{Api:Url}";
apiUrl = (configuredApiUrl[0] !== "#") ?
configuredApiUrl : "http://api.local/v1";
})();
然后在输出文件上设置变量替换
我希望这有帮助 为了清楚起见,在octopus中,您已经为包含所有代码/模块的输出包设置了替换?