最近,当我们想要使用jenkins将相同的角度构建(dist)部署到多个环境(这意味着不同的后端URL)时,我们遇到了这种情况.
'ng build --configuration $ENV' (angular-6) with backend url mentioned in 'src/environment/environment.$ENV.ts'显然不是我们的解决方案,因为这意味着创建特定于环境的多个构建.我们是这样解决的:(参考:https : //github.com/angular/angular-cli/issues/4318,特别感谢:Michaël Arnauts)
在 dist/assets 文件夹中创建一个 js 文件并在那里定义一个全局 js 变量:
分布/资产/env.js
window._env = {
backendUrl: 'https://localhost:XXXX/',
};
Run Code Online (Sandbox Code Playgroud)在你的 environment.$ENV.ts 文件中指向这个全局 js 变量:
src/environments/environment.$ENV.ts
export const environment = {
production: true,
backendUrl: (<any>window)._env.backendUrl,
};
Run Code Online (Sandbox Code Playgroud)在index.html 中添加对 js 的引用
...
<head>
...
<script src="/assets/env.js"></script>
</head>
...
创建环境值 js 文件:
src/environments/environment.$ENV.values.js
window._env = {
backendUrl: 'https://dev.example.com:XXXX/',
};
Run Code Online (Sandbox Code Playgroud)创建构建(dist)
最后,在部署时执行:
cp src/environments/environment.$ENV.values.js dist/assets/env.js
完毕!
请注意,第 1 步是必需的,因此您不需要在本地执行第 6 步。
| 归档时间: |
|
| 查看次数: |
1778 次 |
| 最近记录: |