Błędy: ścieżka danych „.builders ['app-shell']” powinna mieć wymaganą właściwość „class”

159

Otrzymuję ten błąd podczas uruchamiania aplikacji. Oto szczegóły mojej aplikacji.

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

Próbowałem już wyczyścić pamięć podręczną.

Ekta Gandhi
źródło
Oto szczegóły mojej aplikacji. Angular CLI: 7.3.3 Węzeł: 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 / schemics -7.3.3 @ angular / cli -7.3.3 @ ngtools / webpack -8.0.1 @schematics / angular -7.3.3 @ schemics / update 0.13.3 rxjs 6.3.3 maszynopis 3.2.4 webpack 4.30.0
Ekta Gandhi
1
Ten problem jest generalnie spowodowany niezgodnymi pakietami. Czy niedawno zaktualizowałeś plik package.json?
Deepika
7
Wreszcie znalazłem rozwiązanie. 1) Najpierw wyeliminuj wszystkie zmiany w pliku package.json, wydając proste polecenie git checkout package.json. 2) Następnie po wprowadzeniu zmian w package.json w @ angular-devkit / build-angular- ~ 0.800.1 (Dodaj tail zamiast cap) 3) Następnie uruchom polecenie rm -rf node_modules / 4) Następnie wyczyść catch, wydając polecenie npm clean cache -f 5) I na koniec uruchom polecenie npm install. To działa dla mnie.
Ekta Gandhi
1
Powyżej npm clean cache -fjest źle, a powinno npm cache clean --force.
Fabien Haddadi
2
Odkryłem, że ustawiłem nvm, aby używał niewłaściwej wersji węzła, potrzebnego do ustawienia tego poprawnie za pomocą nvm use 12.14.01(w moim przypadku)
QuietSeditionist

Odpowiedzi:

172

W pliku package.json zmień program budujący devkit.

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

do

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

mi to pasuje.
powodzenia.

idirene youcef
źródło
31
Udało się @angular-devkit/build-angular": "0.13.4"i zadziałało.
Dimuthu
3
Idealny. Pracował z „0.13.4”, a potem uruchamiał kompilację npm
SouravOrii
1
Wylądowałem tutaj, ponieważ dostałem powiadomienie o luce w zabezpieczeniach wykrytej w js-yaml <3.13.1. Po aktualizacji otrzymałem ten komunikat o błędzie. Tak czy inaczej, "^0.10.0"naprawiłem to.
Alesh Houdek
11
Wersja 0.13.4 działała dla mnie, jednak najpierw upewnij się, że usunąłeś folder node_modules, usuń pakiet package-lock.json, a następnie uruchom instalację npm. wydaje się, że wszystko naprawia.
Indy-Jones
5
To rozwiązanie działa, ale jest błędne, zamiast tego należy zaktualizować wersję kątową i kątową CLI. Sprawdź odpowiedź @ovangle poniżej
Francesco Borzi
101

Następujące pracowały dla mnie

npm uninstall @angular-devkit/build-angular
npm install @angular-devkit/[email protected]
abasar
źródło
2
Chociaż ta odpowiedź jest bezpośrednia, również brakuje jej zasobów lub odniesienia. Ślepo bezpośrednio ludzie, którzy zainstalują określoną wersję pakietu, mogą zakłócić cały ich projekt. Prosimy o wyjaśnienie i podanie odniesienia.
Zakky
70

Wszyscy tutaj koncentrują się na obniżeniu wersji @ angular-devkit / build-angular do wersji @angular 7.x w celu zapewnienia kompatybilności, ale to, co powinni zrobić, to zaktualizować @angular/clido wersji angular 8.

Problem polega na tym, że CLI systemu nadal utknęło w starej wersji i nie jest automatycznie aktualizowane przez ng update(ponieważ znajduje się poza projektem sterowanym kątowo), więc pozostaje w niekompatybilnej wersji podczas próby dostępu do bibliotek kątowych.

Obniżenie poziomu @angular-devkit/build-angularpowoduje po prostu więcej niezgodności.

npm i --global @angular/cli@latest

rozwiąże problem bez zepsucia rzeczy w innym miejscu.

owinąć
źródło
6
To powinna być odpowiedź. Ten błąd pojawił się, ponieważ wyciągnąłem z gałęzi, która została zaktualizowana do Angular 8, ale kąt mojego komputera jest nadal Angular 7.
teraherc
19
ten problem może wystąpić, gdy robisz npm audit fixprojekty, które są nadal w toku, angular@7więc czasami obniżenie poziomu @angular-devkit/build-angularjest poprawną odpowiedzią
Xesenix
4
bieganie npm audit fixczasami wprowadza zmiany w hamowaniu. zamiast tego powinniśmy pobiec, npm auditaby zrozumieć wyniki i zaktualizować pakiet 1 o 1, używając czegoś takiego jaknpm i --save-dev <package@version>
Naren
1
@zhuhang To jest po prostu ewidentnie fałszywe. Możesz oczekiwać, że aktualizacja globalnego CLI będzie wstecznie kompatybilna z kilkoma ostatnimi wersjami, niekoniecznie możesz oczekiwać, że będzie kompatybilna w przód.
zawalić
1
@ovangle Nie wspomniałem o kompatybilności do przodu. Mówię, że ludzie nie powinni ślepo aktualizować ani obniżać angular-cliwersji , zwłaszcza wersji. Należy zidentyfikować ich aktualną wersję CLI i użyć devkita, który pasuje do tego CLI. Jeśli chcesz zaktualizować pakiety devkit, całkowita aktualizacja CLI jest poprawna.
zhuhang.jasper
61

Wszyscy koncentrują się na obniżeniu @angular-devkit/build-angularwersji do X lub zaktualizowaniu @angular/cliwersji do Y lub najnowszej.

Prosimy jednak nie sugerować na ślepoX or Y or latest odpowiedzi. (Chociaż zwykle obniżenie wersji Devkita powinno być lepsze, ponieważ aktualizacja CLI jest przełomową zmianą)

Właściwa wersja do wyboru zawsze zależy od wersji 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

W przypadku innych konkretnych wersji odwiedź: https://github.com/angular/angular-cli/tags . Znajdź swoją wersję CLI, aw niektórych tagach wspominają o odpowiednich wersjach @angular-devkit/**pakietów.

Uwaga: jeśli chcesz zaktualizować swoją wersję CLI, powinieneś najpierw rozważyć aktualizację do najnowszej wersji głównej, a nie po prostu przeskakiwać do następnej głównej wersji.

zhuhang.jasper
źródło
3
Nie jestem pewien, dlaczego ta odpowiedź została przegłosowana; to dobra rada. W rzeczywistości, to rozwiązać mój problem (jak miałem uaktualniony mój devkit/build-angularpakiet 0.803.xale zostawiłam kątowa CLI w 7.3.xOdkąd nie zamierza zaktualizować kątowa CLI, wróciłem do korzystania ver. 0.13.xZ devkit
Gregg L
2
@GreggL W rzeczywistości moja odpowiedź jest lepsza niż ta z największą liczbą głosów pozytywnych. Inne odpowiedzi sugerują po prostu aktualizację / obniżenie wersji BLINDLY. Jak sugeruje moja odpowiedź, poprawna wersja CLI / devkit jest skorelowana, ale nikt nie podaje F, ponieważ taka jest społeczność programistów.
zhuhang.jasper,
Jesteś ratownikiem, tx! Ale czy masz jakiś pomysł na CLI 7.0.6? Tam nie jest napisane
Erhan Yaşar
2
Aby dodać do tej świetnej odpowiedzi: w moim własnym projekcie uwzględniam @angular/clizależności dev i upewniam się, że pasuje do @angular-devkit/build-angular. W ten sposób mogę obsługiwać wiele projektów z wieloma wersjami CLI. Jeśli to zrobisz ng s, użyjesz twojego komputera CLI, jeśli to zrobisz npm start(który jest skryptem, package.jsonktóry ng serveto zrobi, faktycznie użyje lokalnego CLI, uruchomi tę aplikację z odpowiednim CLI. Mam nadzieję, że to pomoże
ma.D
Zaktualizowano dla Angular 9, od dzisiaj (źródło NPM ): 0.901.1 -> najnowszy, 0.1000.0-następny.0 -> następny, 0.8.9 -> v6-lts, 0.803.26 -> v8-lts, 0.13 .10 -> v7-lts
Massimiliano Caniparoli
30

Twój @ angular-devkit jest niekompatybilny z wersją @ angular / cli, więc po prostu zainstaluj starszą wersję, na przykład:

npm install @angular-devkit/[email protected] @angular-devkit/[email protected]
justForThisQuestion
źródło
Chciał opublikować ten sam. Widziane 0.12.4unoszące się wokół, ale to nie działa dla mnie.
M. Doe
@ M.Doe Prawidłowa wersja zależy od wersji 1angular-cli`. Zobacz to: stackoverflow.com/a/59043569/6122411
zhuhang.jasper
22

Ten sam problem po próbie aktualizacji do Ng8, która nie powiodła się z powodu problemów z zależnościami.

npm uninstall @angular-devkit/build-angular

wtedy użyłem,

npm install @angular-devkit/[email protected]

naprawione...

Alfa Bravo
źródło
czasami to rozwiązanie jest niewykonalne, ponieważ jego wersja może nie być czyimś wymaganiem. Usuń pakiet npm i @angular-devkit/build-angular
JSON
14

Miałem ten sam problem, ale rozwiązałem go dzięki komentarzowi Ekta Gandhi:

Wreszcie znalazłem rozwiązanie.

1) Najpierw wyeliminuj wszystkie zmiany w pliku package.json, wydając prostą komendę git checkout package.json.

2) Następnie po wprowadzeniu zmian w package.json w @ angular-devkit / build-angular- ~ 0.800.1 (Dodaj tail zamiast cap)

3) Następnie uruchom polecenie rm -rf node_modules /

4) Następnie wyczyść catch, wydając polecenie npm clean cache -f

5) I na koniec uruchom polecenie npm install. To działa dla mnie.

.... Wraz z modyfikacją zaproponowaną przez Dimuthu

Udało się to @ angular-devkit / build-angular ":" 0.13.4 "i zadziałało.

Alejandro Araujo
źródło
Należy zauważyć, że wersja „0.13.4” @ angular-devkit / build-angular zawiera problem podczas korzystania z leniwych wczytywanych komponentów. Aby uniknąć tego problemu, użytkownicy muszą zaktualizować swój pakiet @ angular-devkit / build-angular ... Więc coś w rodzaju kompromisu tutaj ...
Adan,
7

Zdarzyło mi się to, gdy zainstalowałem Angular 8, są pewne niezgodności, których nie mogłem rozwiązać. Musiałem obniżyć wersję, ponieważ poszedłem do króliczej nory, żonglując z każdą wersją, aż znalazłem taką, która działała.

Po pierwsze, TypeScript był przestarzały, domyślna instalacja dodała odniesienie do TypeScript 3.1.6 i wymaga wersji 3.4 lub nowszej.

npm install typescript@">=3.4 <3.5"

Po drugie, używanie devkita 0.800.1 lub 0.800.1 zawsze kończyło się niezgodnością. Wypróbowałem wiele kombinacji, ale nie jestem pewien, czy jest jeszcze w pełni kompatybilny, szczególnie, że używam jednego bootstrapa nieco starszego i nie mogę jeszcze zaktualizować.

W końcu próbowałem obniżyć wersję (przejdź do package.json i znajdź devDependencies), dopóki jeden z nich nie zadziałał.

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

Jestem pewien, że problemem są wersje zależności, ale nie mogę powiedzieć, która z nich. Spróbuj obniżyć ocenę.

Maximiliano Rios
źródło
Chociaż to działa, sugerowałbym, @angular-devkit/build-angular": "0.13.8"ponieważ wydaje się, że jest to najnowsza wersja, która działa
M. Doe,
Wielkie dzięki. Wydaje się, według wersji bootstrap lub Zależności nie pozwól mi odejść wyższe niż 0.13.4 ale będzie pracować dla wielu ludzi
Maximiliano Rios
Przy 0.13.8 (w zasadzie wszystko poniżej 0.800. *) Otrzymuję: 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.W najnowszej wersji pojawia się błąd z tytułu. Co zrobić teraz?
Dominik Szymański
7

Spróbuj zaktualizować plik package.json z

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

do

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

Następnie uruchom npm install w wierszu poleceń.

Nadeem Qasmi
źródło
6

Natknąłem się również na ten problem i gdy robiłem więcej aktualizacji, pojawiło się więcej problemów.

W końcu zadziałało dla mnie mniej więcej usunięcie kątowego zacisku i ponowna instalacja, wykonując następujące czynności:

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

pomogło mi to w źródle: jak odinstalować angular / cli

tony2tones
źródło
3

Zrobiłem tę zmianę w pliku package.json, a potem działa.

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

do

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

Aditya patil
źródło
2

Zmieniłem @angular-devkit/build-angular": "0.9.0.1"się @angular-devkit/build-angular": "0.13.4"i zadziałało.

Błogosławieństwo Tatenda Kabungaidze
źródło
U mnie zadziałało, musiałem też uruchomić instalację npm, aby upewnić się, że została pobrana odpowiednia wersja.
David Brunning
2

Zmierzyłem się również z tym problemem i walczyłem godzinami, aby go rozwiązać, wypróbowałem wszystkie powyższe opcje, ale nic nie rozwiązało mojego problemu. Ten problem występuje z powodu niezgodności wersji angular / cli i angular-devkit, więc wykonałem następujące czynności:

  1. Ręcznie zmieniona wersja plików:

    @ angular-devkit / build-angular ":" ^ 0,13,9 ",

    @angular/cli": "~7.0.3", // To jest dla Angular7, dla Angular8: 0.803.23

  2. Usunięto pakiet-lock.json

  3. Wykonano: npm install

To rozwiązało mój problem.

SanjaySahu44
źródło
1

Po mojej stronie była to paczka

@ angular-devkit / build-angular

i

@ angular-devkit / build-ng-packagr

nie była tą samą wersją, Aktualizacja build-ng-packagrdo tej samej wersji, która build-angularrozwiązała mój problem.

Bdwey
źródło
1

Jeśli przejdziesz do kątowej 8 lub 9, to załatwi sprawę

ng update @angular/cli
Victor Osuyak
źródło
0

Możesz po prostu przeprowadzić audyt swojego kodu, a następnie

#sudo su 
rm -rf package-lock.json node_modules
sudo npm i --save 
SUmit RUhela
źródło
-1

Masz niezgodne zależności. Rozwiązałem ten problem, zmieniając plik package.json z innego projektu na angular, a następnie po zmianie na ten packag.json, zmieniasz tylko te wersje zależności, które masz.

po zmianie napisz:

-npm link

-npm służyć -o

to jest praca :)

   {
   "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"
   }
Mohamad Alhamid
źródło
Wypróbowałem to i dają mi te same błędy: ścieżka danych „” NIE powinna mieć dodatkowych właściwości (es5BrowserSupport).
Ekta Gandhi
-1

Miałem ten problem, tak go rozwiązałem. Problem polega głównie na tym, że twoja wersja Angular nie obsługuje twojej wersji Node.js dla kompilacji. Dlatego najlepszym rozwiązaniem jest uaktualnienie Node.js do najbardziej aktualnego stabilnego.

Aby uzyskać czystą aktualizację Node.js, radzę użyć n. jeśli używasz komputera Mac.

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

a teraz sprawdź, czy jesteś zaktualizowany:

node -v
npm -v

Aby uzyskać więcej informacji, sprawdź ten link: tutaj

arielb
źródło
Byłbym szczęśliwy, gdyby dowiedział się, dlaczego otrzymałem ten głos przeciw. To jest
prosta
ponieważ nie jest to związane z wersją węzła, powinna to być wersja angular-cli.
zhuhang.jasper
Właśnie miałem ten problem, nie sądzę, że jest to wersja angular-cli, JEST powiązany z angular-cli, ale ma na niego wpływ wersja węzła.
arielb
-1

ŻADNA z powyższych odpowiedzi nie działa dla mnie.

Moim pierwotnym celem było naprawienie czasami STAŁEJ KOMPILACJI mojego projektu za pomocą VSCode.

Próbowałem na wiele, wiele sposobów, ale NIC nie działało - projekt po prostu NIE BĘDZIE KOMPILACJI!

W końcu dowiedziałem się, na czym polega problem:

Sklonowałem projekt z repozytorium mojej firmy i cały kod stamtąd MUSI iść dokładnie z wersjami zależności, gdy istniejąca część projektu została zakodowana.

W końcu skasowałem poprzednio sklonowany projekt PONOWNIE (kilka razy) , sklonowałem PONOWNIE (również kilka razy) , i NIC NIE ZROBIŁEM RAN "npm install" i wszystko zaczęło działać .

Lekcja, której się tutaj nauczyłem, jest taka:

Czasami pogorszysz sytuację, gdy spróbujesz naprawić jakieś problemy (ten, który miałem, to STAŁA KOMPILACJA mojego projektu).

Ale to nie znaczy, że nie możemy spróbować rozwiązać problemów. Możemy. Ale kiedy wszystko stanie się bałaganem, lepiej użyjmy oryginalnego kodu.

Na szczęście STAŁE KOMPILOWANIE mojego projektu zdarza się tylko raz, nie cały czas. Nie jest to naprawione, ale muszę się z tym pogodzić, bo inaczej mój projekt się nie skompiluje.

William Hou
źródło
-2

to działa reinstalacja @ angular-devkit / build-angular @ 0.13.4

npm install @angular-devkit/[email protected] --save-dev
ahmeturhan
źródło