Я использую 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
он компилируется и все, но в конечном продукте используются переменные enhiorment localHost (dev).
что еще более странно, когда я использую ng server --env=prod
он работает отлично, с производственными переменными.
почему это происходит? как я могу построить переменные среды prod или промежуточной среды?