Ответ 1
Используйте команду, подобную этой для сборки Anuglar 6
ng build --prod --configuration=dev
Или используя псевдоним:
ng build --prod --c=dev
Я использую 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 или промежуточной среды?
Используйте команду, подобную этой для сборки Anuglar 6
ng build --prod --configuration=dev
Или используя псевдоним:
ng build --prod --c=dev
Попробуйте также установить целевую среду:
ng build --target=production --environment=prod
или же ng build --prod --env=prod
или же ng build --prod
по умолчанию для https://github.com/angular/angular-cli/wiki/build.
Это была старая проблема, которая была исправлена в новых версиях cli. Я не могу сказать, если это так, не зная, какие cli и @angular минорные и патч-версии вы используете.
Попробуйте добавить ./
к вашему. angular-cli.json
envs.
"environments": {
"dev": "./environments/environment.ts",
"prod": "./environments/environment.prod.ts",
"staging": "./environments/environment.staging.ts"
}
Если это исправление для вас, я рекомендую вам обновить свои зависимости и ваши клики до последней версии и ваших угловых пакетов до последних версий 4.minor.patch, чтобы предотвратить запуск других исправленных ошибок.