Использование пакетного анализатора webpack с файлом угловой рабочей области

Я пытаюсь оптимизировать пакет ng2-smart-table, который мы используем как зависимость, так как я заметил, что он имеет большую ненужную зависимость от lodash, даже если он использует только небольшую часть lodash.

Тем не менее, я сталкиваюсь с некоторыми проблемами при попытке заставить анализатор пакетов Webpack работать с их angular.json файл рабочей области.

Если я просто пытаюсь запустить ng build, я получаю это:

❯ ng build --statsJson
Unknown option: '--statsJson'
❯ ng build --stats-json
Unknown option: '--stats-json'

Теперь проект использует angular.json файл рабочей области со следующим содержимым:

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "ng2-smart-table": {
      "projectType": "library",
      "root": "projects/ng2-smart-table",
      "sourceRoot": "projects/ng2-smart-table/src",
      "prefix": "lib",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-ng-packagr:build",
          "options": {
            "tsConfig": "projects/ng2-smart-table/tsconfig.lib.json",
            "project": "projects/ng2-smart-table/ng-package.json"
          }
        },
        ...

Если я попытаюсь добавить "statsJson": true к вариантам я получаю эту ошибку:

❯ ng build ng2-smart-table
Schema validation failed with the following errors:
  Data path "" should NOT have additional properties(statsJson).

Я подозреваю, что это как-то связано с использованием проекта @angular-devkit/build-ng-packagr:build а не стандарт @angular-devkit/build-angular:browser, Однако, поскольку packagr, по-видимому, не поддерживает анализ, я просто не знаю, как мне сгенерировать файл анализа.

0 ответов

Вам необходимо указать проект, если вы используете такое рабочее пространство, как

ng build myproject --statsJson

Перейдите в файл angular.json и проверьте раздел "проекты".

"projects": {
    "template": { <--- here
        "projectType": "application",
        "schematics": {},

Тогда беги ng build template --statsJson

В вашем случае это ng build ng2-smart-table --statsJson

Другие вопросы по тегам