Использование пакетного анализатора 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