Помилки: шлях даних ".builders ['app-shell']" повинен мати необхідний властивість 'class'


159

Я отримую цю помилку під час запуску програми. Ось деталі моєї заяви.

Angular CLI: 7.3.3 
Node: 10.15.1 
Angular: 7.2.7 
@angular-devkit/architect -0.13.3 
@angular-devkit/build-angular- 0.800.1 
@angular-devkit/build-optimizer - 0.800.1 
@angular-devkit/build-webpack - 0.800.1 
@angular-devkit/core -7.3.3 
@angular-devkit/schematics -7.3.3 
@angular/cli -7.3.3 
@ngtools/webpack -8.0.1 
@schematics/angular -7.3.3 
@schematics/update 0.13.3 
rxjs 6.3.3 
typescript 3.2.4 
webpack 4.30.0

Я вже спробував очистити кеш.


Ось детальна інформація про мою заявку. Кутовий CLI: 7.3.3 Вузол: 10.15.1 Кутовий: 7.2.7 @ angular-devkit / architect -0.13.3 @ angular-devkit / build-angular- 0.800.1 @ angular-devkit / build-optimizer - 0.800.1 @ angular-devkit / build-webpack - 0.800.1 @ angular-devkit / core -7.3.3 @ angular-devkit / schematics -7.3.3 @ angular / cli -7.3.3 @ ngtools / webpack -8.0.1 @schematics / angular -7.3.3 @ schematics / update 0.13.3 rxjs 6.3.3 машинопис 3.2.4 webpack 4.30.0
Ekta Gandhi

1
Це питання, як правило, через несумісні пакети. Ви нещодавно оновили package.json?
Дипика

7
Нарешті я знайшов рішення. 1) Спочатку усуньте всі зміни у файлі package.json, давши просту команду git checkout package.json. 2) Потім після внесення змін у package.json в @ angular-devkit / build-angular- ~ 0.800.1 (Додати хвіст замість шапки) 3) Потім запустіть команду rm -rf node_modules / 4) Потім очистіть улов, давши команду npm чистий кеш -f 5) І нарешті запустити команду npm install. Це працює для мене.
Екта Ганді

1
Вище, npm clean cache -fнеправильно, має бути npm cache clean --force.
Фаб'єн Хаддаді

2
Що я з’ясував, це те, що я встановив nvm використовувати неправильну версію вузла, необхідну для правильного встановлення, використовуючи nvm use 12.14.01(у моєму випадку)
QuietSeditionist

Відповіді:


172

У своєму пакеті.json змініть конструктор dekkit.

"@angular-devkit/build-angular": "^0.800.1",

до

"@angular-devkit/build-angular": "^0.10.0",

це працює для мене.
Щасти.


31
Зробив це @angular-devkit/build-angular": "0.13.4"і воно спрацювало.
Дімуту

3
Ідеально. Працював з "0.13.4", а потім працював над нарощуванням npm
SouravOrii

1
Приземлився сюди, бо отримав сповіщення про вразливість безпеки, виявлену в js-yaml <3.13.1. Після оновлення я отримав це повідомлення про помилку. У будь-якому випадку, "^0.10.0"виправити це.
Алеш Хоудек

11
0,13,4 працював для мене, проте переконайтеся, що спочатку вилучите папку node_modules, видаліть package-lock.json, а потім запустіть npm install. начебто все виправляє.
Інді-Джонс

5
Це рішення працює, але це неправильно, замість цього слід оновити кутову та кутову версії кліпу. Відповідь @ovangle перевіряйте нижче
Франческо Борзі

101

Слідом працював для мене

npm uninstall @angular-devkit/build-angular
npm install @angular-devkit/build-angular@0.13.0

2
Хоча ця відповідь є прямою, вона також не має ресурсу чи довідки. Сліпо безпосередньо люди, щоб встановити певну версію пакета, можуть порушити весь їхній проект. Будьте зрозумілі та надайте посилання.
Заккі

70

Усі тут зосереджуються на пониженні версій @ angular-devkit / build-angular до @angular 7.x для сумісності, але те, що вони повинні робити, - це оновити @angular/cliдо кутових 8 версій.

Проблема полягає в тому, що системний кліп все ще застряг у старій версії і не оновлюється автоматично ng update(оскільки він знаходиться поза проектом, що контролюється кутом), тому він залишається в несумісній версії при спробі отримати доступ до кутових бібліотек.

Пониження рівня @angular-devkit/build-angularпросто викликає більше несумісностей.

npm i --global @angular/cli@latest

вирішить проблему, не порушуючи речі в іншому місці.


6
Це має бути відповіддю. Ця помилка сталася зі мною , тому що я витягнув з філії , який був оновлений до кутових 8 , але кутовий мого комп'ютера по - , як і раніше Кутовий 7.
терагерцеві

19
ця проблема може виникнути, коли ви займаєтесь npm audit fixпроектами, які все ще продовжуються, angular@7тому іноді пониження @angular-devkit/build-angularє правильною відповіддю
Xesenix

4
біг npm audit fixіноді вносить зміни гальмування. замість цього нам слід запуститись, npm auditщоб зрозуміти результати та оновити пакет 1 на 1, використовуючи щось на кшталтnpm i --save-dev <package@version>
Naren

1
@zhuhang Це просто неправдиво. Ви можете очікувати, що оновлення глобального CLI буде сумісним назад з останніми кількома версіями, не обов'язково очікувати, що воно буде сумісним вперед.
ovangle

1
@ovangle Я не згадав про сумісний форвард. Я кажу, що люди не повинні сліпо оновлювати чи поновлювати версію, особливо angular-cliверсію. Слід визначити їхню поточну версію CLI та використовувати dekkit, що відповідає цьому CLI. Якщо ви хочете оновити пакети devkit, то оновлення CLI взагалі є правильним.
zhuhang.jasper

61

Усі зосереджуються на пониженні @angular-devkit/build-angularверсії до X або модернізації @angular/cliверсії до Y або останньої.

Однак, будь ласка, не слід сліпо пропонувати X or Y or latestвідповіді. (Хоча, як правило, зниження рівня devkit має бути кращим, оскільки оновлення CLI - це суттєва зміна)

Правильна версія, яку слід вибрати, завжди залежить від вашої кутової (кутової) версії.

Angular CLI v8.3.19 -> 0.803.19
Angular CLI v8.3.17 -> 0.803.17
Angular CLI v7.3.8 -> 0.13.8
Angular CLI v6-lts -> 0.8.9

Для інших конкретних версій відвідайте: https://github.com/angular/angular-cli/tags . Знайдіть свою версію CLI, і в деяких тегах вони згадують відповідні версії для @angular-devkit/**пакетів.

Примітка. Якщо ви хочете оновити свою версію CLI, спочатку слід розглянути можливість оновлення до останньої вашої основної версії, а не просто переходити до наступної основної версії.


3
Не впевнений, чому ця відповідь була заперечена; це гарна порада. Насправді це вирішило мою проблему (коли я модернізував свій devkit/build-angularпакет до, 0.803.xале покинув свій Angular CLI at 7.3.x. Оскільки я не мав наміру модернізувати свій Angular CLI, я повернувся до використання версії 0.13.xdevkit
Грегг L

2
@GreggL Насправді моя відповідь краща за відповідь з більшістю відгуків. Інші відповіді просто пропонують оновити / понизити НАРОДНО. Як підказує моя відповідь, правильна версія CLI / devkit співвідноситься, але ніхто не дає F, оскільки так працює спільнота dev.
zhuhang.jasper

Ти рятівник, tx! Але чи маєте ви якусь ідею для cli 7.0.6? Там не написано
Ерхан Ясар

2
Щоб додати до цієї чудової відповіді: у своєму власному проекті я включаю @angular/cliдо себе розробник залежностей і переконуюсь, що він відповідає рівню @angular-devkit/build-angular. Таким чином я можу підтримувати декілька проектів із кількома версіями CLI. Якщо ви ng sце зробите, ви будете використовувати ваш CLI на комп’ютері, якщо ви це зробите npm start(для чого це сценарій package.json, ng serveвін фактично використовуватиме місцевий CLI, він запустить цю програму з потрібним CLI. Сподіваюся, це допоможе
март.

Оновлено для Angular 9 станом на сьогодні (джерело NPM ): 0.901.1 -> останній, 0.1000.0-наступний.0 -> наступний, 0.8.9 -> v6-lts, 0.803.26 -> v8-lts, 0.13 .10 -> v7-lts
Массіміліано Каніпаролі

30

Ваш @ angular-devkit несумісний з версією @ angular / cli, тому просто встановіть старішу, наприклад цю:

npm install @angular-devkit/build-angular@0.13.8 @angular-devkit/build-ng-packagr@0.13.8

Хотіли опублікувати ту саму. Видно, що 0.12.4пливе навколо, але це не працює для мене.
M. Doe

@ M.Doe Правильна версія залежить від вашої версії 1angular-cli`. Дивіться це: stackoverflow.com/a/59043569/6122411
zhuhang.jasper

22

Та сама проблема після спроби оновлення до Ng8, яка не вдалася через проблеми залежності.

npm uninstall @angular-devkit/build-angular

тоді я використовував,

npm install @angular-devkit/build-angular@0.12.4

виправили це ...


іноді це рішення не є можливим, оскільки його версія може не бути чиєюсь вимогою. Видалити блокування пакету jsonnpm i @angular-devkit/build-angular
Tejashree

14

У мене була така ж проблема, але я вирішив її завдяки коментарю Екта Ганді:

Нарешті я знайшов рішення.

1) По-перше, усуньте всі зміни у файлі package.json, давши просту команду git checkout package.json.

2) Потім після внесення змін у package.json в @ angular-devkit / build-angular- ~ 0.800.1 (Додати хвіст замість шапки)

3) Потім запустіть команду rm -rf node_modules /

4) Потім очистіть улов, даючи команду npm clean cache -f

5) І нарешті запустіть команду npm install. Це працює для мене.

.... Поряд з модифікацією, запропонованою Дімуту

Зробив його на @ angular-devkit / build-angular ":" 0.13.4 ", і він працював.


Слід зазначити, що версія "0.13.4" @ angular-devkit / build-angular має проблему при використанні компонентів, що завантажуються леда. Щоб уникнути цього випуску, користувачі повинні оновити пакет @ angular-devkit / build-angular ... Так що тут торгуйте ...
Адан

7

Це сталося зі мною, коли я встановив Angular 8, є деякі несумісності, які я не міг вирішити. Мені довелося погіршуватися, тому що я спускався з кролячої нори, мандруючи навколо кожної версії, поки не знайшов одну, яка працює.

По-перше, TypeScript застарів, установка за замовчуванням додала посилання на TypeScript 3.1.6, і для цього потрібно 3,4 або більше.

npm install typescript@">=3.4 <3.5"

По-друге, використання devkit 0.800.1 або 0.800.1 завжди виявилося несумісними. Я спробував багато комбінацій, але я не впевнений, що він повністю сумісний, тим більше, що я використовую один завантажувальний апарат трохи старший і не можу ще оновити.

Нарешті я спробував знизити рівень (перейдіть до package.json і знайдіть devDependitions), поки одна з них не спрацювала.

@angular-devkit/build-angular": "0.13.4"

Я впевнений, що ваша проблема - це версії залежностей, але я не можу сказати вам, яку саме. Спробуйте понизити рівень.


Хоча це працює, я б запропонував, @angular-devkit/build-angular": "0.13.8"як здається, це остання версія, яка працює
М. Doe

Дуже дякую. Здається, версія для завантаження або залежності не дозволяють мені перевищувати 0,13,4, але це спрацює для багатьох людей
Максиміліано Ріос

З 0,13,8 (по суті, щонайменше 0,800. *) Я отримую: An unhandled exception occurred: Could not find the implementation for builder @angular-devkit/build-angular:browser See "/tmp/ng-5iKcHN/angular-errors.log" for further details.З останньою версією я отримую помилку від заголовка. Що ж тепер робити?
Домінік Шиманський

7

Спробуйте оновити файл package.json від

  "@angular-devkit/build-angular": "^0.800.1" 

до

  "@angular-devkit/build-angular": "^0.12.4"

Потім запустіть npm install в командному рядку.


6

Я також стикався з цією проблемою, і для мене, коли робили більше оновлень, виникало більше проблем.

Зрештою, для мене працювало більш-менш видалити кутовий затиск і повторно встановити його за допомогою цих кроків:

npm uninstall -g @angular/cli
npm cache clean --force
npm install -g @angular/cli

це допомогло мені джерело: як видалити angular / cli


3

Я вніс цю зміну у файл package.json, тоді він працює.

"@angular-devkit/build-angular": "^0.803.23"

до

"@angular-devkit/build-angular": "^0.13.9"



2

Я також стикався з цим питанням і боровся години, щоб вирішити його, я спробував усі вищеперелічені варіанти, але нічого не вирішило мою проблему. Ця проблема виникає через невідповідність версії angular / cli та angular-devkit, тому я зробив наступне:

  1. Вручну змінена версія файлів:

    @ angular-devkit / build-angular ":" ^ 0.13.9 ",

    @angular/cli": "~7.0.3", // Це для Angular7, для Angular8: 0.803.23

  2. Видалено пакет-lock.json

  3. Виконано: встановити npm

Це вирішило мою проблему.


1

З мого боку це був пакет

@ angular-devkit / build-angular

і

@ angular-devkit / build-ng-packgr

не та сама версія, оновлення build-ng-packagrдо тієї ж версії, що і build-angularвиправлена ​​моя проблема.



0

Ви можете просто перевірити код і потім

#sudo su 
rm -rf package-lock.json node_modules
sudo npm i --save 

-1

У вас є несумісні залежності, які я вирішив цю проблему, змінивши package.json у інший проект кутовий, а потім після зміни цього packg.json ви змінюєте лише версії залежностей, які у вас є.

після зміни напишіть:

-npm посилання

-нч подавати -о

тоді це робота :)

   {
   "name": "angular-jwt-auth",
   "version": "0.0.0",
   "scripts": {
   "ng": "ng",
   "start": "ng serve",
   "build": "ng build",
   "test": "ng test",
   "lint": "ng lint",
   "e2e": "ng e2e"
   },
   "private": true,
   "dependencies": {
   "@angular/animations": "^7.1.4",
   "@angular/cdk": "^7.3.1",
   "@angular/common": "~7.1.0",
   "@angular/compiler": "~7.1.0",
   "@angular/core": "~7.1.0",
   "@angular/forms": "~7.1.0",
   "@angular/http": "^6.1.10",
   "@angular/material": "^7.3.1",
   "@angular/platform-browser": "~7.1.0",
   "@angular/platform-browser-dynamic": "~7.1.0",
   "@angular/router": "~7.1.0",
   "@ng-bootstrap/ng-bootstrap": "^4.2.0",
   "@types/jquery": "^3.3.29",
   "angular-6-datatable": "^0.8.0",
   "bootstrap": "^4.3.1",
   "chart.js": "^2.8.0",
   "core-js": "^2.5.4",
   "jquery": "^3.4.1",
   "rxjs": "~6.3.3",
   "zone.js": "~0.8.26"
    },
   "devDependencies": {
   "@angular-devkit/build-angular": "~0.11.0",
   "@angular/cli": "~7.1.0",
   "@angular/compiler-cli": "~7.1.0",
   "@angular/language-service": "~7.1.0",
   "@types/chart.js": "^2.7.53",
   "@types/jasmine": "^2.8.16",
   "@types/jasminewd2": "^2.0.6",
   "@types/node": "~8.9.4",
   "codelyzer": "~4.2.1",
   "jasmine-core": "~2.99.1",
   "jasmine-spec-reporter": "~4.2.1",
   "karma": "~3.1.1",
   "karma-chrome-launcher": "~2.2.0",
   "karma-coverage-istanbul-reporter": "~2.0.1",
   "karma-jasmine": "~1.1.2",
   "karma-jasmine-html-reporter": "^0.2.2",
   "protractor": "~5.4.0",
   "ts-node": "~7.0.0",
   "tslint": "~5.11.0",
   "typescript": "~3.1.6"
   }

Я спробував це, і це дає мені ті ж помилки помилок: Шлях даних "" НЕ повинен мати додаткових властивостей (es5BrowserSupport).
Екта Ганді

-1

У мене було це питання, ось як я його вирішив. Проблема здебільшого полягає в тому, що ваша кутова версія не підтримує вашу версію Node.js для збірки. Тож найкращим рішенням є оновлення вашого Node.js до самого поточного стабільного.

Для чистого оновлення Node.js я раджу використовувати n. якщо ви використовуєте Mac.

npm install -g n
npm cache clean -f
sudo n stable
npm update -g

а тепер перевірте, чи ви оновлені:

node -v
npm -v

Для отримання більш детальної інформації перевірте це посилання: тут


Був би радий дізнатися, чому я отримав цей відгук. Це
чітка

оскільки його не пов’язано з версією вузла, вона повинна бути кутовою версією cli.
zhuhang.jasper

У мене щойно виникла ця проблема, я не думаю, що це версія anggal-cli, вона пов'язана з angular-cli, але на неї впливає версія вузла.
аріельб

-1

НІКОЙ із наведених відповідей не працює для мене.

Моя первісна мета полягала в тому, щоб виправити інколи КОНСТАНТНУ СКЛАДУ мого проекту з VSCode.

Я спробував багато, багато способів, але НІЧОГО не працювало - проект просто НЕ БУДЬ КОМПІЛІ!

Нарешті я з’ясував, у чому тут проблема:

Я клонував проект із репозиторію своєї компанії, і весь код звідти МАЄ ТО точно з версіями залежностей, коли існуюча частина проекту була закодована.

Врешті-решт я видалив раніше клонований проект ПРОТИ (досить кілька разів) , клонував ПРОТИ (також кілька разів) , і ВІДМОВИЛИ НЕ НЕ РОБИТИ "npm install", і все почало працювати .

Урок, який я тут засвоїв, полягає в тому, що:

Іноді ви погіршите ситуацію, коли спробуєте виправити деякі проблеми (одна з них у мене була КОНСТАНТНА КОМПІЛІЗАЦІЯ мого проекту).

Але це не означає, що ми не можемо намагатися виправити проблеми. Ми можемо. Але коли все стане безладом, нам краще піти з оригінальним кодом.

На щастя, КОНСТАНТНЕ СКЛАДАННЯ мого проекту трапляється лише раз, а не весь час. Це не виправлено, але я маю це мати на увазі, інакше мій проект навіть не складеться.


-2

це робота перевстановити @ angular-devkit / build-angular @ 0.13.4

npm install @angular-devkit/build-angular@0.13.4 --save-dev
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.