Ошибки: путь данных «.builders ['app-shell']» должен иметь обязательное свойство «класс»


160

Я получаю эту ошибку при запуске приложения. Вот подробности моего заявления.

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

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


Вот деталь моего заявления. Angular CLI: 7.3.3 Узел: 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 @scmatics / angular -7.3.3 @ schematics / update 0.13.3 rxjs 6.3.3 typcript 3.2.4 webpack 4.30.0
Экта Ганди

1
Эта проблема, как правило, из-за несовместимых пакетов. Вы недавно обновляли package.json?
Дипика

7
Наконец я нашел решение. 1) Во-первых, отмените все изменения в файле package.json с помощью простой команды git checkout package.json. 2) Затем внесите изменения в package.json в @ angular-devkit / build-angular- ~ 0.800.1 (добавьте хвост вместо cap) 3) Затем выполните команду rm -rf node_modules / 4) Затем очистите catch, введя команду npm очистить кеш -f 5) И наконец запустить команду npm install. Это работает для меня.
Экта Ганди

1
Выше, npm clean cache -fэто неправильно, должно быть npm cache clean --force.
Фабьен Хаддади

2
Что я обнаружил, так это то, что я установил nvm для использования неправильной версии узла, которая была необходима для правильной установки с помощью nvm use 12.14.01(в моем случае)
QuietSeditionist

Ответы:


173

В вашем package.json измените конструктор devkit.

"@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 build
SouravOrii

1
Попал сюда, потому что я получил уведомление об уязвимости безопасности, обнаруженной в js-yaml <3.13.1. После обновления я получил это сообщение об ошибке. В любом случае, "^0.10.0"это исправлено.
Алеш Houdek

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

3
Хотя этот ответ является прямым, ему также не хватает ресурсов или ссылок. Непосредственно слепые люди, чтобы установить конкретную версию пакета, могут нарушить весь их проект. Пожалуйста, будьте ясны и предоставьте некоторую ссылку.
Закки

70

Все здесь сосредотачиваются на понижении версии @ angular-devkit / build-angular до версии @angular 7.x для совместимости, но что они должны сделать, это перейти @angular/cliна версии angular 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 и использовать devkit, соответствующий этому CLI. Если вы хотите обновить пакеты devkit, то обновление CLI в целом является правильным.
zhuhang.jasper

62

Каждый фокусируется на понижении @angular-devkit/build-angularверсии до X или обновлении @angular/cliверсии до Y или до последней.

Тем не менее, пожалуйста, не предлагайте вслепуюX or Y or latest как ответы. (Хотя обычно понижение уровня devkit должно быть лучше, потому что обновление CLI является серьезным изменением)

Выбор правильной версии всегда зависит от вашей версии Angular (angular-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 в 7.3.x. Поскольку я не собирался обновлять свой Angular CLI, я вернулся к использованию версии 0.13.xdevkit
Gregg L

2
@GreggL На самом деле мой ответ лучше, чем тот, у которого больше голосов. Другие ответы просто предлагают обновить / понизить слепо. Как подсказывает мой ответ, правильная версия CLI / devkit коррелирует, но никто не дает F, потому что таково сообщество разработчиков.
zhuhang.jasper

Вы спасатель, Техас! Но есть ли у вас идеи для Cli 7.0.6? Там не написано
Эрхан Яшар

2
Чтобы добавить к этому замечательному ответу: в моем собственном проекте я включаю @angular/cliв зависимости dev и проверяю, соответствует ли он @angular-devkit/build-angular. Таким образом, я могу поддерживать несколько проектов с несколькими версиями CLI. Если вы это сделаете, ng sон будет использовать CLI вашего компьютера, если вы это сделаете npm start(это скрипт, package.jsonдля которого ng serveон фактически будет использовать локальный CLI, он запустит это приложение с правильным CLI. Надеюсь, это поможет
ma.D

Обновление для 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 Правильная версия зависит от вашей версии 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 (добавьте tail вместо cap)

3) Затем выполните команду rm -rf node_modules /

4) Затем очистите catch, введя команду npm clean cache -f

5) И наконец запустите команду npm install. Это работает для меня.

.... Вместе с модификацией, предложенной Димуту

Сделал это в @ angular-devkit / build-angular ":" 0.13.4 "и все заработало.


Следует отметить, что версия "0.13.4" @ angular-devkit / build-angular имеет проблему при использовании лениво загруженных компонентов. Чтобы избежать этой проблемы пользователи должны обновить свои @ угловой DevKit / встраиваемая угловой пакет ... Так что своего рода компромисс здесь ...
Адан

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 и найдите devDependencies), пока один из них не сработал.

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

Я уверен, что ваша проблема в версиях зависимостей, но я не могу сказать вам, какая из них. Попробуй понизить.


Хотя это работает, я хотел бы предложить, @angular-devkit/build-angular": "0.13.8"поскольку это, кажется, последняя версия, которая работает
М. Доу

Большое спасибо. Кажется, из-за начальной версии или зависимостей не отпускай выше 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

На моей стороне это был пакет

@ Угловой DevKit / встроенный угловой

и

@ Угловой DevKit / наращивание нг-packagr

была не та же версия, обновление build-ng-packagrдо той же версии, что и build-angularисправило мою проблему.



0

Вы можете просто проверить свой код, а затем

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

-1

У вас есть несовместимые зависимости. Я решил эту проблему, изменив файл package.json на другой угловой проект, а затем после изменения этого файла packag.json измените только те версии зависимостей, которые у вас есть.

после изменения напишите:

-npm ссылка

-npm serve -o

тогда это работа :)

   {
   "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

У меня была эта проблема, вот как я ее решил. Проблема в основном в том, что ваша версия Angular не поддерживает вашу версию 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

Для более подробной информации, проверьте эту ссылку: здесь


Был бы рад узнать, почему я получил это downvote. Это чистый ответ, без каких-либо «обходных путей»
arielb

потому что это не связано с версией узла, это должна быть версия angular-cli.
zhuhang.jasper

У меня только что была эта проблема, я не думаю, что это версия angular-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.