Fehler: Für den Datenpfad ".builders ['app-shell']" sollte die Eigenschaft 'class' erforderlich sein.


159

Ich erhalte diesen Fehler beim Ausführen meiner Anwendung. Hier sind die Details meiner Bewerbung.

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

Ich habe bereits versucht, den Cache sauber zu halten.


Hier ist das Detail meiner Bewerbung. Winkel-CLI: 7.3.3 Knoten: 10.15.1 Winkel: 7.2.7 @ Winkel-Devkit / Architekt -0.13.3 @ Winkel-Devkit / Build-Winkel- 0.800.1 @ Winkel-Devkit / Build-Optimierer - 0.800.1 @ angle-devkit / build-webpack - 0.800.1 @ angle-devkit / core -7.3.3 @ angle-devkit / schematics -7.3.3 @ angle / cli -7.3.3 @ ngtools / webpack -8.0.1 @schematics / Winkel -7.3.3 @ schematics / Update 0.13.3 rxjs 6.3.3 Typoskript 3.2.4 Webpack 4.30.0
Ekta Gandhi

1
Dieses Problem ist im Allgemeinen auf inkompatible Pakete zurückzuführen. Haben Sie kürzlich package.json aktualisiert?
Deepika

7
Endlich habe ich die Lösung gefunden. 1) Entfernen Sie zunächst alle Änderungen in der Datei package.json, indem Sie den einfachen Befehl git checkout package.json eingeben. 2) Nachdem Sie die Änderung in package.json in @ angle-devkit / build-angle-~ 0.800.1 vorgenommen haben (Tail anstelle von cap hinzufügen) 3) Führen Sie dann den Befehl rm -rf node_modules / 4 aus.) Bereinigen Sie dann catch, indem Sie den Befehl npm eingeben Cache leeren -f 5) Und zuletzt den Befehl npm install ausführen. Das funktioniert bei mir.
Ekta Gandhi

1
Oben npm clean cache -fist falsch, sollte sein npm cache clean --force.
Fabien Haddadi

2
Was ich fand, war, dass ich nvm so eingestellt hatte, dass die falsche Version des Knotens verwendet wurde, um dies mit nvm use 12.14.01(in meinem Fall)
QuietSeditionist

Antworten:


171

Ändern Sie in Ihrer package.json den Devkit-Builder.

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

zu

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

Für mich geht das.
Viel Glück.


31
Hat es geschafft @angular-devkit/build-angular": "0.13.4"und es hat funktioniert.
Dimuthu

3
Perfekt. Arbeitete mit "0.13.4" und führte anschließend npm build aus
SouravOrii

1
Ich bin hier gelandet, weil ich eine Benachrichtigung über eine Sicherheitslücke in js-yaml <3.13.1 erhalten habe. Nach dem Update habe ich diese Fehlermeldung erhalten. Wie auch immer, "^0.10.0"behoben.
Alesh Houdek

11
Die Version 0.13.4 hat bei mir funktioniert. Stellen Sie jedoch sicher, dass Sie zuerst den Ordner node_modules entfernen, die Datei package-lock.json löschen und dann npm install ausführen. scheint alles zu reparieren.
Indy-Jones

5
Diese Lösung funktioniert, ist aber falsch. Sie sollten stattdessen die Angular- und Angular-Cli-Version aktualisieren. Überprüfen Sie @ovangle Antwort unten
Francesco Borzi

101

Das Folgende hat bei mir funktioniert

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

2
Obwohl diese Antwort direkt ist, fehlen ihr auch Ressourcen oder Referenzen. Blind direkt Leute, die eine bestimmte Paketversion installieren, können ihr gesamtes Projekt stören. Bitte seien Sie klar und geben Sie einige Hinweise.
Zakky

70

Alle hier konzentrieren sich aus Kompatibilitätsgründen auf das Downgrade von @ angle-devkit / build-angle auf @angular 7.x-Versionen. Sie sollten jedoch ein Upgrade durchführen@angular/cli auf Angular 8-Versionen durchführen.

Das Problem ist, dass die System-CLI immer noch auf einer alten Version steckt und nicht automatisch aktualisiert wird ng update (da sie sich außerhalb des winkelgesteuerten Projekts befindet), sodass beim Versuch, auf die Winkelbibliotheken zuzugreifen, eine inkompatible Version beibehalten wird.

Ein Downgrade führt @angular-devkit/build-angularnur zu mehr Inkompatibilitäten.

npm i --global @angular/cli@latest

wird das Problem beheben, ohne Dinge an anderer Stelle zu brechen.


6
Dies sollte die Antwort sein. Dieser Fehler ist mir eingefallen, weil ich aus einem Zweig gezogen habe, der auf Angular 8 aktualisiert wurde, aber der Winkel meines Computers immer noch Angular 7 ist.
Terahertz

19
Dieses Problem kann auftreten, wenn Sie npm audit fixProjekte angular@7@angular-devkit/build-angular
ausführen

4
Laufen führt npm audit fixmanchmal zu Bremsänderungen. Wir sollten stattdessen laufen npm audit, um die Ergebnisse zu verstehen und das Paket 1 zu 1 mit etwas wienpm i --save-dev <package@version>
Naren

1
@zhuhang Das ist einfach offenkundig falsch. Sie können davon ausgehen, dass ein Upgrade der globalen CLI abwärtskompatibel mit den letzten Versionen ist. Sie können nicht unbedingt erwarten, dass es abwärtskompatibel ist.
ovangle

1
@ovangle habe ich nicht vorwärtskompatibel erwähnt. Ich sage, die Leute sollten nicht blind upgraden oder downgraden, besonders die angular-cliVersion. Man sollte die aktuelle CLI-Version identifizieren und das Devkit verwenden, das dieser CLI entspricht. Wenn Sie Devkit-Pakete aktualisieren möchten, ist das Aktualisieren der CLI insgesamt korrekt.
zhuhang.jasper

61

Jeder konzentriert sich darauf, die @angular-devkit/build-angularVersion auf X herunterzustufen oder zu aktualisieren@angular/cli Version auf Y oder die neueste .

Bitte schlagen Sie jedoch nicht blind eine X or Y or latestAntwort vor. (Normalerweise sollte ein Downgrade des Devkits besser sein, da das Upgrade der CLI eine wichtige Änderung darstellt.)

Die richtige Version hängt immer von Ihrer Angular-Version (Angular-Cli) ab.

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

Weitere spezifische Versionen finden Sie unter: https://github.com/angular/angular-cli/tags . Suchen Sie Ihre CLI-Version, und in einigen Tags werden die entsprechenden Versionen für erwähnt@angular-devkit/** Pakete erwähnt.

Hinweis: Wenn Sie Ihre CLI-Version aktualisieren möchten, sollten Sie zunächst ein Upgrade auf die neueste Version Ihrer Hauptversion in Betracht ziehen und nicht einfach zur nächsten Hauptversion springen.


3
Ich bin mir nicht sicher, warum diese Antwort abgelehnt wurde. Es ist ein guter Rat. Tatsächlich löste es mein Problem (da ich mein devkit/build-angularPaket auf aktualisiert hatte , 0.803.xaber meine Angular-CLI bei belassen hatte 7.3.x. Da ich nicht beabsichtigte, meine Angular-CLI zu aktualisieren, verwendete ich wieder ver 0.13.xof devkit
Gregg L

2
@ GreggL Tatsächlich ist meine Antwort besser als die mit den meisten positiven Stimmen. Andere Antworten schlagen einfach vor, BLINDLY zu aktualisieren / herunterzustufen. Wie meine Antwort andeutet, korreliert die richtige CLI / Devkit-Version, aber niemand gibt ein F, denn so ist die Dev-Community.
zhuhang.jasper

Du bist ein Lebensretter, tx! Aber haben Sie eine Idee für Cli 7.0.6? Es steht dort nicht
Erhan Yaşar

2
Um diese großartige Antwort zu ergänzen: In meinem eigenen Projekt @angular/clibeziehe ich die Entwicklungsabhängigkeiten ein und stelle sicher, dass sie mit den übereinstimmen @angular-devkit/build-angular. Auf diese Weise kann ich mehrere Projekte mit mehreren CLI-Versionen verwalten. Wenn Sie dies tun ng s, wird Ihre Computer-CLI verwendet. Wenn Sie dies tun npm start(bei dem es sich um ein Skript handelt package.json, ng servewird die lokale CLI verwendet, wird diese App mit der richtigen CLI
gestartet. Ich

Ab heute für Angular 9 aktualisiert (Quell- NPM ): 0,901,1 -> spätestens, 0,1000,0-next.0 -> next, 0,8,9 -> v6-lts, 0,803,26 -> v8-lts, 0,13 .10 -> v7-lts
Massimiliano Caniparoli

30

Ihr @ angle-devkit ist nicht mit der @ angle / cli-Version kompatibel. Installieren Sie also einfach ein älteres wie das folgende:

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

Wollte das gleiche posten. Gesehen 0.12.4herumschweben, aber das funktioniert bei mir nicht.
M. Doe

@ M.Doe Die richtige Version hängt von Ihrer 1angular-cli`-Version ab. Siehe dies: stackoverflow.com/a/59043569/6122411
zhuhang.jasper

22

Gleiches Problem nach dem Versuch, ein Upgrade auf Ng8 durchzuführen, das aufgrund von Abhängigkeitsproblemen fehlgeschlagen ist.

npm uninstall @angular-devkit/build-angular

dann habe ich verwendet,

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

behoben...


Manchmal ist diese Lösung nicht durchführbar, da die Version möglicherweise nicht den Anforderungen eines anderen entspricht. Löschen Sie die npm i @angular-devkit/build-angular
Paketsperre

14

Ich hatte das gleiche Problem, aber ich habe es dank des Kommentars von Ekta Gandhi gelöst:

Endlich habe ich die Lösung gefunden.

1) Entfernen Sie zunächst alle Änderungen in der Datei package.json, indem Sie den einfachen Befehl git checkout package.json eingeben.

2) Dann nach Änderung in package.json in @ angle-devkit / build-angle-~ 0.800.1 (Schwanz anstelle von Kappe hinzufügen)

3) Führen Sie dann den Befehl rm -rf node_modules / aus

4) Bereinigen Sie dann catch, indem Sie den Befehl npm clean cache -f eingeben

5) Und zuletzt den Befehl npm install ausführen. Das funktioniert bei mir.

.... zusammen mit der von Dimuthu vorgeschlagenen Änderung

Schaffte es an @ angle-devkit / build-angle ":" 0.13.4 "und es funktionierte.


Es ist zu beachten, dass die Version "0.13.4" von @ angle-devkit / build-angle ein Problem bei der Verwendung von verzögert geladenen Komponenten aufweist. Um dieses Problem zu vermeiden, müssen Benutzer ihr @ angle-devkit / build-angle-Paket aktualisieren ... Also eine Art Kompromiss hier ...
Adan

7

Dies ist mir bei der Installation von Angular 8 passiert. Es gibt einige Inkompatibilitäten, die ich nicht lösen konnte. Ich musste ein Downgrade durchführen, weil ich mit jeder Version durch das Kaninchenloch jonglierte, bis ich eine fand, die funktionierte.

Erstens war TypeScript veraltet, die Standardinstallation fügte einen Verweis auf TypeScript 3.1.6 hinzu und erfordert 3.4 oder höher.

npm install typescript@">=3.4 <3.5"

Zweitens führte die Verwendung des Devkits 0.800.1 oder 0.800.1 immer zu Inkompatibilitäten. Ich habe viele Kombinationen ausprobiert, bin mir aber noch nicht sicher, ob sie vollständig kompatibel sind, insbesondere, weil ich einen etwas älteren Bootstrap verwende und noch kein Upgrade durchführen kann.

Schließlich habe ich versucht, ein Downgrade durchzuführen (gehen Sie zu package.json und suchen Sie die devDependencies), bis einer von ihnen funktioniert hat.

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

Ich bin sicher, Ihr Problem sind Abhängigkeitsversionen, aber ich kann Ihnen nicht sagen, welche. Probieren Sie es aus.


Während es funktioniert, würde ich vorschlagen, @angular-devkit/build-angular": "0.13.8"da es die neueste Version zu sein scheint, die funktioniert
M. Doe

Vielen Dank. Es scheint, dass Bootstrap-Version oder Abhängigkeiten mich nicht höher als 0.13.4 gehen lassen, aber es würde für viele Leute funktionieren
Maximiliano Rios

Mit 0.13.8 (im Wesentlichen alles unter 0.800. *) Bekomme ich: 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.Mit der neuesten Version erhalte ich Fehler vom Titel. Was nun?
Dominik Szymański

7

Versuchen Sie, die Datei package.json von zu aktualisieren

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

zu

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

Führen Sie dann npm install in der Befehlszeile aus.


6

Ich bin auch auf dieses Problem gestoßen, und bei mehr Updates sind mehr Probleme aufgetreten.

Was am Ende für mich funktioniert hat, war mehr oder weniger, eckige Cli zu entfernen und sie mit den folgenden Schritten neu zu installieren:

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

Dies hat mir geholfen, die Quelle zu finden: wie man angle / cli deinstalliert


3

Ich habe diese Änderung in der Datei package.json vorgenommen, dann funktioniert es.

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

zu

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


2

Ich wechselte @angular-devkit/build-angular": "0.9.0.1"zu @angular-devkit/build-angular": "0.13.4"und es hat funktioniert.


Arbeitete für mich, musste auch npm install ausführen, um sicherzustellen, dass die richtige Version heruntergeladen wurde.
David Brunning

2

Ich war auch mit diesem Problem konfrontiert und hatte Stunden Mühe, es zu lösen. Ich habe alle oben genannten Optionen ausprobiert, aber nichts hat mein Problem gelöst. Dieses Problem tritt aufgrund einer Versionsfehlanpassung von Angular / Cli und Angular-Devkit auf. Daher habe ich Folgendes getan:

  1. Manuell geänderte Version von Dateien:

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

    @angular/cli": "~7.0.3", // Dies ist für Angular7, für Angular8: 0.803.23

  2. Package-lock.json gelöscht

  3. Ausgeführt: npm install

Es hat mein Problem gelöst.


1

Auf meiner Seite war es Paket

@ angle-devkit / build-angle

und

@ angle-devkit / build-ng-packagr

war nicht die gleiche Version, Aktualisierung build-ng-packagrauf die gleiche Version wie build-angularmein Problem behoben.


1

Wenn Sie zu Winkel 8 oder 9 wechseln, reicht dies aus

ng update @angular/cli

0

Sie können einfach Ihren Code prüfen und dann

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

-1

Sie haben inkompatible Abhängigkeiten. Ich habe dieses Problem gelöst, indem ich die package.json aus einem anderen Projektwinkel geändert habe. Nach der Änderung in packag.json ändern Sie nur die Abhängigkeitsversionen, die Sie haben.

nach der Änderung schreiben:

-npm Link

-npm servieren -o

dann ist es Arbeit :)

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

Ich habe es versucht und es gibt mir die gleichen Fehlerfehler: Datenpfad "" sollte keine zusätzlichen Eigenschaften haben (es5BrowserSupport).
Ekta Gandhi

-1

Ich hatte dieses Problem, so habe ich es gelöst. Das Problem besteht hauptsächlich darin, dass Ihre Angular-Version Ihre Node.js-Version für den Build nicht unterstützt. Die beste Lösung besteht also darin, Ihre Node.js auf die aktuellste stabile zu aktualisieren.

Für ein sauberes Upgrade von Node.js empfehle ich die Verwendung von n. Wenn Sie einen Mac verwenden.

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

und jetzt überprüfen Sie, ob Sie aktualisiert sind:

node -v
npm -v

Weitere Informationen finden Sie unter folgendem Link: hier


Würde mich freuen zu wissen, warum ich diese Ablehnung bekommen habe. Dies ist eine saubere Antwort, ohne zu versuchen, einige "
Problemumgehungen

Da es nicht mit der Knotenversion zusammenhängt, sollte es eine Angular-Cli-Version sein.
zhuhang.jasper

Ich hatte gerade dieses Problem, ich glaube nicht, dass es die Angular-Cli-Version ist, es ist mit dem Angular-Cli verwandt, aber es ist von der Node-Version betroffen.
Arielb

-1

KEINE der oben angegebenen Antworten funktioniert für mich.

Mein ursprüngliches Ziel war es, das manchmal KONSTANTE KOMPILIEREN meines Projekts mit VSCode zu beheben.

Ich habe viele, viele Möglichkeiten ausprobiert, aber NICHTS hat funktioniert - das Projekt wird einfach nicht kompiliert!

Schließlich fand ich heraus, was das Problem hier ist:

Ich habe das Projekt aus dem Repository meines Unternehmens geklont, und der gesamte Code von dort MUSS genau mit den Versionen der Abhängigkeiten übereinstimmen, als der vorhandene Teil des Projekts codiert wurde.

Am Ende habe ich das zuvor geklonte Projekt WIEDER gelöscht (einige Male) und WIEDER geklont (auch einige Male) und NICHTS ABER RAN "npm install" und alles begann zu funktionieren .

Die Lektion, die ich hier gelernt habe, ist folgende:

Manchmal verschlimmert sich die Situation, wenn Sie versuchen, einige Probleme zu beheben (das Problem, das ich hatte, war das KONSTANTE KOMPILIEREN meines Projekts).

Das heißt aber nicht, dass wir nicht versuchen können, die Probleme zu beheben. Wir können. Aber wenn alles durcheinander kommt, sollten wir besser den Originalcode verwenden.

Glücklicherweise findet die KONSTANTE KOMPILIERUNG meines Projekts nur gelegentlich statt , nicht immer. Es ist nicht behoben, aber ich muss es ertragen, sonst wird mein Projekt nicht einmal kompiliert.


-2

Es ist Arbeit, @ angle-devkit / build-angle @ 0.13.4 neu zu installieren

npm install @angular-devkit/build-angular@0.13.4 --save-dev
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.