Как установить среду через " ng serve` в angular 6
Я пытаюсь обновить приложение angular 5.2 до angular 6. Я успешно выполнил инструкции в руководстве по обновлению angular (включая обновление angular-cli
до v6), и теперь я пытаюсь обслуживать приложение через
ng serve --env=local
но это дает мне ошибку:
неизвестный вариант: '--env'
Я использую несколько сред (dev/local/prod
), и именно так он работал в 5.2. Как я могу установить среду теперь в angular 6?
5 ответов
вам нужно использовать новый (это работает для ng build
и ng serve
а)
ng serve --configuration=local
или
ng serve -c local
если вы посмотрите на свой angular.json
file, вы увидите, что у вас есть более точный контроль над настройками для каждой конфигурации (aot, optimizer, environment files,...)
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}
вы можете получить больше информации здесь для управления конфигурациями конкретной среды.
как указано в другом ответе ниже, если вам нужно добавить новую "среду", вам нужно добавить новую конфигурацию в построить задач и, в зависимости от ваших потребностей, к служить и тест а также задачи.
добавление новой среде
редактировать:
Чтобы было ясно, замены файлов должны быть указаны в . Поэтому, если вы хотите использовать ng serve
конкретной (скажем dev2), ты первый необходимо изменить build
Раздел для добавления нового dev2 конфигурация
"build": {
"configurations": {
"dev2": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev2.ts"
}
/* You can add all other options here, such as aot, optimization, ... */
],
"serviceWorker": true
},
изменить serve
раздел, чтобы добавить новую конфигурацию, а также, указывая на dev2 build
конфигурация, которую вы только что объявили
"serve":
"configurations": {
"dev2": {
"browserTarget": "projectName:build:dev2"
}
затем вы можете использовать ng serve -c dev2
, который будет использовать файл конфигурации dev2
на https://stackoverflow.com/a/50174679/1484847 ответ, видимо, хорошо.
однако это привело меня к ошибке, поскольку это привело к Configuration 'xyz' could not be found in project ...
ошибка сборки.
Это requierd не только для обновления построить конфигурации, а также служить
те.
так что просто, чтобы не оставить путаницы:
-
--env
Не поддерживается вangular 6
-
--env
изменился на--configuration
//-c
(и сейчас мощный) - для управления различными envs, в дополнение к добавлению нового файла среды, теперь требуется внести некоторые изменения в :
- добавить новую конфигурацию в построить
{ ... "build": "configurations": ...
свойства - новая конфигурация может содержать только
fileReplacements
часть, (но больше вариантов доступны) - добавить новую конфигурацию в служить
{ ... "serve": "configurations": ...
свойства - новая служить конфигурация должны быть
browserTarget="your-project-name:build:staging"
- добавить новую конфигурацию в построить
можно попробовать: ng serve --configuration=dev/prod
для построения используйте:ng build --prod --configuration=dev
надеюсь, что вы используете другой вид окружающей среды.
Угловое 2 - 5 см. В статье множественная среда в angular
для угловой 6 использовать ng serve --configuration=dev
Примечание: см. ту же статью для angular 6. Но где бы вы ни нашли
--env
вместо того, чтобы использовать--configuration
. Это хорошо работает для angular 6.