Конфигурация 'production' не найдена в проекте 'my-lib' - PullRequest
0 голосов
/ 13 сентября 2018

Я собираю библиотеку с Angular 6.1.0

  • ng new lib-demo
  • ng generate library my-lib

Все статьи рекомендуют запускать сборкудля библиотеки с флагом --prod, например, так:

ng build my-lib --prod

Однако это выдает ошибку

Configuration 'production' could not be found in project 'my-lib'.

Что, вероятно, правильно, потому что когда я смотрю на angular.json в проекте библиотеки нет определения для production build configuration.Он присутствует только для проекта приложения.

следующее - это то, что у меня есть в конфигурации сборки для проекта библиотеки, который использует ng-packagr

"build": {
      "builder": "@angular-devkit/build-ng-packagr:build",
      "options": {
        "tsConfig": "projects/my-lib/tsconfig.lib.json",
        "project": "projects/my-lib/ng-package.json"
      }
    }

Итак, вопрос в том, что флаг --prod больше не требуется и простоЗапуск ng build m-lib будет генерировать сборку Prod?

Глядя на содержимое папки dist, все выглядит так, но я не уверен на 100%.Если кто-то сможет это подтвердить, это будет здорово.

Ответы [ 3 ]

0 голосов
/ 27 ноября 2018

Начиная с версии 6.1, Angular всегда производит производственную сборку нашей библиотеки, т. Е. В новых версиях Angular нам больше не нужен флаг --prod при его сборке, библиотеки всегда собираются в режиме AOT. Чтобы убедиться, вы можете взглянуть на эти проблемы в репозитории Angular-CLI:

https://github.com/angular/angular-cli/issues/12290

https://github.com/angular/angular-cli/issues/12226

И эта статья ( «Построение библиотеки» раздел):

https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5

Если вы все еще используете версию 6.0.x (или ниже), вы захотите использовать флаг --prod при сборке библиотеки.

0 голосов
/ 13 июня 2019

в разделе архитектора ищите «конфигурации», если у вас их нет.попробуйте добавить один, как показано ниже.

"configurations": {
      "production": {
      "project": "projects/PROJECT-NAME/ng-package.json"
    }
}

your architect section should like this



"architect": {
    "build": {
      "builder": "@angular-devkit/build-ng-packagr:build",
      "options": {
        "tsConfig": "projects/PROJECT-NAME/tsconfig.lib.json",
        "project": "projects/PROJECT-NAME/ng-package.json"
      },
      "configurations": {
        "production": {
          "project": "projects/PROJECT-NAME/ng-package.json"
        }
      }
    }
0 голосов
/ 13 сентября 2018

В Angular 6+ это ng build --configuration=production

Затем поместите производственную конфигурацию в angular.json

 "configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ],
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "aot": true,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true
        }
      }
...