Как настроить среду через НГ в угловые 6



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



ng serve --env=local


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




неизвестный вариант: '--env'




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

504   5  

5 ответов:

вы должны использовать новый (это работает для ng build и ng serve а)

ng serve --configuration=local

или

ng serve -c local

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

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

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

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

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

Edit: Чтобы было понятно, замены файлов должны быть указаны в . Так что если вы хотите использовать 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
        },

изменить для добавления новой конфигурации, а также, указывая на dev2build конфигурация, которую вы только что объявили

"serve":
      "configurations": {
        "dev2": {
          "browserTarget": "projectName:build:dev2"
        }

затем вы можете использовать ng serve -c dev2, который будет использовать файл конфигурации dev2

The 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

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

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

ng build --prod --configuration=dev

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

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

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

Comments

    Ничего не найдено.