Как установить среду через " 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 не только для обновления построить конфигурации, а также служить те.

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

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

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

для построения используйте:ng build --prod --configuration=dev

надеюсь, что вы используете другой вид окружающей среды.


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

ng build --prod --configuration=dev

Угловое 2 - 5 см. В статье множественная среда в angular

для угловой 6 использовать ng serve --configuration=dev

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