首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将同一角度构建(dist)部署到具有不同后端url的多个环境中?

如何将同一角度构建(dist)部署到具有不同后端url的多个环境中?
EN

Stack Overflow用户
提问于 2018-07-14 09:18:43
回答 2查看 3.7K关注 0票数 7

最近,我们遇到了这样的情况:我们希望使用jenkins将相同的角度构建(dist)部署到多个环境中,这意味着后端url的不同。

  • 对我们来说,使用'ng build --configuration $ENV' (angular-6) with backend url mentioned in 'src/environment/environment.$ENV.ts'显然不是一个解决方案,因为这意味着要创建特定于环境的多个构建。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-14 09:18:43

这就是我们解决它的方法:(参考:https://github.com/angular/angular-cli/issues/4318,特别感谢:Micha l Arnauts)

  1. 在dist/assets文件夹中创建一个js文件,并在其中定义一个全局js变量: dist/assets/env.js window._env ={ backendUrl:'https://localhost:XXXX/',};
  2. 指向environment.$ENV.ts文件中的全局js变量: src/environments/environment.$ENV.ts export环境={ production: true,backendUrl:(window)._env.backendUrl,};
  3. index.html中添加js的引用 ... <head> ... <script src="/assets/env.js"></script> </head> ...
  4. 创建环境值js文件: src/environments/environment.$ENV.values.js window._env ={ backendUrl:'https://dev.example.com:XXXX/',};
  5. 创建生成(dist)
  6. 最后,在部署时做: cp src/environments/environment.$ENV.values.js dist/assets/env.js
  7. 完成了!

请注意,步骤1是必需的,这样您就不需要在本地做第6步了。

票数 8
EN

Stack Overflow用户

发布于 2018-07-14 09:35:32

步骤1:创建js文件

只需在资产目录中添加一个js文件即可。

假设名称为config.js,并将所有配置放入其中,例如:

代码语言:javascript
复制
var myAppGlobalConfig = { param1: 'value1' };
var BASE_URL = "http://xxx.backend.xxx/api/";
var GET_DATA = BASE_URL + "data.go";

步骤2:在index.html中包括

现在,在index.html中,只需在任何其他脚本之前包含该脚本

代码语言:javascript
复制
<script src="assets/config.js"></script>

步骤3:在您的类型记录类中使用它们

例如,您可以分配http端点地址。

代码语言:javascript
复制
this.http.get(window["DATA_URL"]).subscribe(...)

此外,在不同的环境中,只需更改config.js中声明的全局变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51337048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档