Как настроить окружение через `ng serve` в Angular 6 - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь обновить приложение Angular 5.2 до Angular 6. Я успешно следовал инструкциям в руководстве по обновлению Angular (включая обновление angular-cli до v6), и теперь я пытаюсь обслуживать приложение через

ng serve --env=local

Но это дает мне ошибку:

Неизвестная опция: '--env'

Я использую несколько сред (dev/local/prod), и именно так это работало в Angular 5.2. Как мне теперь установить среду в Angular 6?

Ответы [ 7 ]

0 голосов
/ 03 февраля 2019

Вы можете использовать команду ng serve -c dev для среды разработки ng serve -c prod для производственной среды

при сборке также применяется. Вы можете использовать ng build -c dev для сборки dev

0 голосов
/ 30 апреля 2019

Angular больше не поддерживает --env, вместо этого вы должны использовать

ng serve --c dev

для среды разработки и,

ng serve --c prod 

для производства. Надеюсь, это поможет.

0 голосов
/ 22 августа 2018

Вы можете попробовать: ng serve --configuration=dev/prod

Для сборки использовать: ng build --prod --configuration=dev

Надеюсь, вы используете другой тип среды.

0 голосов
/ 26 июля 2018

Для угловых 2 - 5 см. Статью Множественная среда в угловых

Для Angular 6 используйте ng serve --configuration=dev

Примечание. См. Ту же статью для угловых 6. Но везде, где вы найдете --env, вместо этого используйте --configuration. Это хорошо работает для угловых 6.

0 голосов
/ 20 июля 2018

Используйте эту команду для Angular 6, чтобы построить

ng build --prod --configuration=dev
0 голосов
/ 28 мая 2018

Этот ответ кажется хорошим.
однако, это привело меня к ошибке, поскольку это привело к
Configuration 'xyz' could not be found in project ...
ошибка в сборке.
Он необходим не только для обновленных build конфигураций, но также для serve из них.

Так что просто, чтобы не было путаницы:

  1. --env не поддерживается в angular 6
  2. --env было изменено на --configuration || -c (и теперь более мощный)
  3. для управления различными envs, в дополнение к добавлению нового файла среды, теперь необходимо внести некоторые изменения в файл angular.json:
    • добавить новую конфигурацию в build { ... "build": "configurations": ... свойство
    • новая конфигурация сборки может содержать только fileReplacements часть (но доступно больше опций)
    • добавить новую конфигурацию в serve { ... "serve": "configurations": ... свойство
    • новая конфигурация подачи должна содержать browserTarget="your-project-name:build:staging"
0 голосов
/ 04 мая 2018

Вам необходимо использовать новую опцию configuration (это также работает для ng build и ng serve)

ng serve --configuration=local

или

ng serve -c local

Если вы посмотрите на файл angular.json, вы увидите, что у вас есть более точный контроль над настройками для каждой конфигурации (например, оптимизатор, файлы среды, ...)

"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"
      }
    ]
  }
}

Вы можете получить дополнительную информацию здесь для управления конфигурациями, специфичными для среды.

Как указано в другом ответе ниже, если вам нужно добавить новую «среду», вам нужно добавить новую конфигурацию в задачу build и, в зависимости от ваших потребностей, в обслуживайте и тестируйте задания.

Добавление новой среды

Редактировать : Чтобы было понятно, замены файлов должны быть указаны в разделе build. Поэтому, если вы хотите использовать ng serve с конкретным файлом environment (скажем, 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

...