【发布时间】:2018-06-17 15:08:40
【问题描述】:
我正在使用 angular4(4.4.6) 和 CLI 1.4.3。 我尝试像本文中那样制作环境变量: https://alligator.io/angular/environment-variables/
我最终得到了 3 个文件: environment.ts
export const environment = {
production: false,
restUrl: 'http://localhost:3000/',
socketUrl: 'http://localhost:2000'
};
environment.prod.ts
export const environment = {
production: true,
restUrl: 'http://139.130.4.5:3000/',
socketUrl: 'http://139.130.4.5:2000'
};
和environment.staging.ts
export const environment = {
production: true,
restUrl: 'http://139.130.4.5:3000/',
socketUrl: 'http://139.130.4.5:2000'
};
我使用它们如下:
import { environment } from '../../environments/environment';
constructor() {
this.serverUrl = environment.restUrl;
console.log('the env is:' this.serverUrl');
}
在 .angular-cli.json 我有以下内容:
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts",
"staging": "environments/environment.staging.ts"
}
由于某种原因,当我运行 ng build --env=prod 时,它会编译所有内容,但最终产品使用 localHost(dev) 环境变量。
更奇怪的是,当我使用 ng server --env=prod 时,它可以完美运行,并带有生产变量。
为什么会这样?如何使用 prod 或 staging 环境变量进行构建?
【问题讨论】:
-
@ Efim,我在使用 Angular 5 时遇到了同样的问题,以下解决方案都不适合我 :(,有版本 5 的解决方案吗?
-
@Efim,你有没有找到解决这个问题的方法?
标签: angular