Lỗi: Đường dẫn dữ liệu .builders ['app-shell'] nên có thuộc tính bắt buộc 'class'


159

Tôi nhận được lỗi này trong khi chạy ứng dụng của tôi. Dưới đây là chi tiết về ứng dụng của tôi.

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

Tôi đã thử xóa bộ nhớ cache.


Dưới đây là chi tiết về ứng dụng của tôi. Angular CLI: 7.3.3 Nút: 10.15.1 Angular: 7.2.7 @ angular-devkit / architect -0.13.3 @ angular-devkit / build-angular- 0.800.1 @ angular-devkit / build-tối ưu hóa - 0.800.1 @ angular-devkit / build-webpack - 0.800.1 @ angular-devkit / core -7.3.3 @ angular-devkit / schapes -7.3.3 @ angular / cli -7.3.3 @ ngtools / webpack -8.0.1 @schapes / angular -7.3.3 @ sơ đồ / cập nhật 0.13.3 rxjs 6.3.3 bản thảo 3.2.4 webpack 4.30.0
Ekta Gandhi

1
Vấn đề này thường là do các gói không tương thích. Gần đây bạn đã cập nhật pack.json chưa?
Deepika

7
Cuối cùng tôi đã tìm ra giải pháp. 1) Trước tiên, loại bỏ tất cả các thay đổi trong tệp pack.json bằng cách đưa ra lệnh đơn giản git checkout pack.json. 2) Sau đó, sau khi thực hiện thay đổi trong pack.json trong @ angular-devkit / build-angular- ~ 0.800.1 (Thêm đuôi thay vì nắp) 3) Sau đó chạy lệnh rm -rf node_modules / 4) Sau đó xóa sạch lệnh bằng cách đưa ra lệnh npm dọn dẹp bộ đệm -f 5) Và cuối cùng, lệnh npm cài đặt. Điều này làm việc cho tôi.
Ekta Gandhi

1
Ở trên, npm clean cache -flà sai, nên được npm cache clean --force.
Fabien Haddadi

2
Những gì tôi tìm thấy là tôi đã đặt nvm để sử dụng phiên bản sai của nút, cần thiết để sử dụng đúng cách nvm use 12.14.01(trong trường hợp của tôi)
QuietSeditionist

Câu trả lời:


171

Trong gói.json của bạn thay đổi trình xây dựng devkit.

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

đến

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

nó làm việc cho tôi
chúc may mắn.


31
Làm cho nó @angular-devkit/build-angular": "0.13.4"và nó làm việc.
Dimuthu

3
Hoàn hảo. Làm việc với "0.13.4" và chạy npm build sau đó
SouravOrii

1
Hạ cánh ở đây vì tôi nhận được thông báo về lỗ hổng bảo mật được phát hiện trong js-yaml <3.13.1. Sau khi cập nhật tôi nhận được thông báo lỗi này. Dù sao, đã "^0.10.0"sửa nó.
Alesh Houdek

11
0.13.4 hoạt động với tôi, tuy nhiên, trước tiên hãy đảm bảo bạn xóa thư mục node_modules, xóa gói-lock.json và sau đó chạy cài đặt npm. dường như để sửa chữa mọi thứ.
Indy-Jones

5
Giải pháp này hoạt động nhưng sai, thay vào đó bạn nên nâng cấp phiên bản cli góc cạnh và góc cạnh. Kiểm tra câu trả lời @ovangle bên dưới
Francesco Borzi

101

Sau đây làm việc cho tôi

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

2
Mặc dù câu trả lời này là trực tiếp, nó cũng thiếu tài nguyên hoặc tài liệu tham khảo. Những người trực tiếp mù quáng để cài đặt một phiên bản gói cụ thể có thể phá vỡ toàn bộ dự án của họ. Hãy rõ ràng và cung cấp một số tài liệu tham khảo.
Zakky

70

Mọi người ở đây đang tập trung vào việc hạ cấp các phiên bản @ angular-devkit / build-angular thành các phiên bản @angular 7.x để tương thích, nhưng điều họ nên làm là nâng cấp@angular/cli lên 8 phiên bản góc cạnh.

Vấn đề là cli hệ thống vẫn bị kẹt ở phiên bản cũ và không được cập nhật tự động bởi ng update (vì nó nằm ngoài dự án được điều khiển góc), do đó, nó bị bỏ lại ở phiên bản không tương thích khi cố gắng truy cập các thư viện góc.

Hạ cấp @angular-devkit/build-angularchỉ gây ra sự không tương thích nhiều hơn.

npm i --global @angular/cli@latest

sẽ khắc phục vấn đề mà không phá vỡ mọi thứ ở nơi khác.


6
Đây nên là câu trả lời. Lỗi này xảy ra với tôi vì tôi đã kéo từ một nhánh đã được cập nhật lên Angular 8 nhưng góc máy tính của tôi vẫn là Angular 7.
terahertz

19
vấn đề này có thể xảy ra khi bạn thực hiện npm audit fixcác dự án vẫn đang tiếp tục angular@7nên đôi khi hạ cấp @angular-devkit/build-angularlà câu trả lời chính xác
Xesenix

4
chạy npm audit fixđôi khi giới thiệu thay đổi phanh. thay vào đó, chúng ta nên chạy npm auditđể hiểu những phát hiện và nâng cấp gói 1 lên 1 bằng cách sử dụng một cái gì đó nhưnpm i --save-dev <package@version>
Naren

1
@zhuhang Đó chỉ là giả dối. Bạn có thể mong đợi nâng cấp CLI toàn cầu để tương thích ngược với một vài phiên bản trước, bạn không nhất thiết có thể mong đợi nó tương thích về phía trước.
ovangle

1
@ovangle Mình không đề cập đến tương thích. Tôi đang nói mọi người không nên mù quáng nâng cấp hoặc hạ cấp, đặc biệt là angular-cliphiên bản. Người ta phải xác định phiên bản CLI hiện tại của họ và sử dụng devkit phù hợp với CLI đó. Nếu bạn muốn nâng cấp các gói devkit, thì việc nâng cấp CLI hoàn toàn là chính xác.
zhuhang.jasper

61

Mọi người đang tập trung vào việc hạ cấp @angular-devkit/build-angularphiên bản xuống X hoặc nâng cấp @angular/cliphiên bản lên Y hoặc mới nhất.

Tuy nhiên, xin đừng mù quáng đề nghị X or Y or latestnhư một câu trả lời. (Mặc dù thông thường, hạ cấp devkit nên tốt hơn vì nâng cấp CLI là một thay đổi đột phá)

Phiên bản chính xác để chọn, luôn phụ thuộc vào phiên bản Angular (angular-cli) của bạn.

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

Đối với các phiên bản cụ thể khác, hãy truy cập: https://github.com/angular/angular-cli/tags . Tìm phiên bản CLI của bạn và trong một số thẻ, họ có đề cập đến các phiên bản tương ứng cho@angular-devkit/** các gói.

Lưu ý: Nếu bạn muốn nâng cấp phiên bản CLI của mình, trước tiên bạn nên xem xét nâng cấp lên phiên bản chính mới nhất của mình, đừng đơn giản chuyển sang phiên bản chính tiếp theo.


3
Không chắc chắn tại sao câu trả lời này đã bị bỏ phiếu; đó là lời khuyên tốt Trên thực tế, nó đã giải quyết được vấn đề của tôi (vì tôi đã nâng cấp devkit/build-angulargói của mình lên 0.803.xnhưng để lại CLI Angular của tôi 7.3.x. Vì tôi không có ý định nâng cấp CLI Angular của mình, tôi đã quay lại sử dụng ver 0.13.xcủa devkit
Gregg L

2
@GreggL Trong thực tế, câu trả lời của tôi là tốt hơn so với câu trả lời nhiều nhất. Các câu trả lời khác chỉ đơn giản là đề xuất nâng cấp / hạ cấp BLINDLY. Như câu trả lời của tôi cho thấy, phiên bản CLI / devkit chính xác tương quan, nhưng không ai đưa ra F, vì đó là cách cộng đồng dev phát triển.
zhuhang.jasper

Bạn là một phao cứu sinh, tx! Nhưng bạn có ý tưởng nào cho cli 7.0.6 không? Nó không được viết ở đó
Erhan Yaşar

2
Để thêm vào câu trả lời tuyệt vời này: Trong dự án của riêng tôi, tôi đưa @angular/clivào các phụ thuộc dev và tôi chắc chắn rằng nó phù hợp với @angular-devkit/build-angular. Bằng cách đó tôi có thể duy trì nhiều dự án với nhiều phiên bản CLI. Nếu bạn làm ng snó sẽ sử dụng CLI trên máy tính của bạn, nếu bạn làm npm start(đó là một kịch bản package.jsonđể thực hiện ng servethì nó sẽ thực sự sử dụng CLI cục bộ, nó khởi chạy ứng dụng này với CLI phù hợp. Hy vọng điều này sẽ giúp
ma.D

Đã cập nhật cho Angular 9, tính đến hôm nay ( NPM nguồn ): 0.901.1 -> mới nhất, 0.1000.0-next.0 -> tiếp theo, 0.8.9 -> v6-lts, 0.804.26 -> v8-lts, 0.13 .10 -> v7-lts
Massimiliano Caniparoli

30

@ Angular-devkit của bạn không tương thích với phiên bản @ angular / cli, vì vậy chỉ cần cài đặt phiên bản cũ hơn như thế này chẳng hạn:

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

Muốn đăng cùng một. Nhìn thấy 0.12.4xung quanh, nhưng điều này không làm việc cho tôi.
M. Doe

@ M.Doe Phiên bản chính xác tùy thuộc vào phiên bản 1angular-cli` của bạn. Xem điều này: stackoverflow.com/a/59043569/6122411
zhuhang.jasper

22

Vấn đề tương tự sau khi cố gắng nâng cấp lên Ng8 mà không thành công do vấn đề phụ thuộc.

npm uninstall @angular-devkit/build-angular

sau đó tôi đã sử dụng

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

đã sửa nó ...


đôi khi giải pháp này không khả thi vì phiên bản của nó có thể không phải là yêu cầu của ai đó. Xóa gói khóa jsonnpm i @angular-devkit/build-angular
Tejashree

14

Tôi đã có cùng một vấn đề, nhưng tôi đã giải quyết nó nhờ bình luận của Ekta Gandhi:

Cuối cùng tôi đã tìm ra giải pháp.

1) Trước tiên, loại bỏ tất cả các thay đổi trong tệp pack.json bằng cách đưa ra lệnh đơn giản git checkout pack.json.

2) Sau đó, sau khi thực hiện thay đổi trong pack.json trong @ angular-devkit / build-angular- ~ 0.800.1 (Thêm đuôi thay vì giới hạn)

3) Sau đó chạy lệnh rm -rf node_modules /

4) Sau đó xóa sạch bắt bằng cách đưa ra lệnh npm xóa bộ đệm -f

5) Và tại lệnh chạy npm cuối cùng cài đặt. Điều này làm việc cho tôi.

.... Cùng với sửa đổi được đề xuất bởi Dimuthu

Đã chuyển thành @ angular-devkit / build-angular ":" 0.13.4 "và nó đã hoạt động.


Cần lưu ý rằng phiên bản "0.13.4" của @ angular-devkit / build-angular có vấn đề khi sử dụng các thành phần được tải lười biếng. Để tránh vấn đề đó, người dùng cần cập nhật gói @ angular-devkit / build-angular của họ ... Vì vậy, hãy loại bỏ một sự đánh đổi ở đây ...
Adan

7

Điều này xảy ra với tôi khi tôi cài đặt Angular 8, có một số điểm không tương thích tôi không thể giải quyết. Tôi đã phải hạ cấp bởi vì tôi đã đi xuống lỗ thỏ tung hứng với mọi phiên bản cho đến khi tôi tìm thấy một phiên bản hoạt động.

Đầu tiên, TypeScript đã lỗi thời, cài đặt mặc định đã thêm một tham chiếu đến TypeScript 3.1.6 và nó yêu cầu 3,4 hoặc cao hơn.

npm install typescript@">=3.4 <3.5"

Thứ hai, sử dụng devkit 0.800.1 hoặc 0.800.1 luôn kết thúc không tương thích. Tôi đã thử nhiều kết hợp nhưng tôi không chắc nó hoàn toàn tương thích, đặc biệt vì tôi đang sử dụng một bootstrap cũ hơn một chút và tôi chưa thể nâng cấp.

Cuối cùng, tôi đã cố gắng hạ cấp (đi đến pack.json và tìm devDependencies) cho đến khi một trong số chúng hoạt động.

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

Tôi chắc chắn vấn đề của bạn là phiên bản phụ thuộc nhưng tôi không thể cho bạn biết cái nào. Hãy thử hạ cấp.


Trong khi nó hoạt động, tôi sẽ đề nghị @angular-devkit/build-angular": "0.13.8"vì nó dường như là phiên bản mới nhất hoạt động
M. Doe

Cảm ơn rất nhiều. Có vẻ như phiên bản bootstrap hoặc phần phụ thuộc không cho phép tôi tăng cao hơn 0.13.4 nhưng nó sẽ hoạt động với nhiều người
Maximiliano Rios

Với 0.13.8 (về cơ bản mọi thứ thấp hơn 0.800. *) Tôi nhận được: 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.Với phiên bản mới nhất tôi gặp lỗi từ tiêu đề. Làm gì bây giờ?
Dominik Szymański

7

Hãy thử cập nhật tệp pack.json từ

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

đến

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

Sau đó chạy cài đặt npm trong dòng lệnh.


6

Tôi cũng đã gặp vấn đề này và đối với tôi khi thực hiện cập nhật nhiều vấn đề hơn xảy ra.

Những gì làm việc cho tôi cuối cùng là ít nhiều để loại bỏ cli góc và cài đặt lại với các bước sau:

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

Điều này giúp tôi biết nguồn: cách gỡ cài đặt angular / cli


3

Tôi đã thực hiện thay đổi này trong tệp pack.json, sau đó nó hoạt động.

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

đến

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


2

Tôi đã thay đổi @angular-devkit/build-angular": "0.9.0.1"đến @angular-devkit/build-angular": "0.13.4"và nó làm việc.


Làm việc cho tôi, cũng phải chạy cài đặt npm để đảm bảo tải đúng phiên bản.
David Brunning

2

Tôi cũng phải đối mặt với vấn đề này và phải vật lộn hàng giờ để giải quyết nó, tôi đã thử tất cả các lựa chọn trên nhưng không có gì giải quyết được vấn đề của tôi. Vấn đề này xảy ra do phiên bản không khớp của angular / cli và angular-devkit, vì vậy tôi đã làm như sau:

  1. Phiên bản thay đổi thủ công của tệp:

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

    @angular/cli": "~7.0.3", // Đây là dành cho Angular7, cho Angular8: 0,804,23

  2. Đã xóa gói-lock.json

  3. Đã thực hiện: cài đặt npm

Nó giải quyết vấn đề của tôi.


1

Về phía tôi đó là gói

@ angular-devkit / xây dựng góc

@ angular-devkit / build-ng-packagr

không phải là cùng một phiên bản, Cập nhật build-ng-packagrlên cùng một phiên bản đã build-angularkhắc phục sự cố của tôi.


1

Nếu bạn chuyển sang góc 8 hoặc 9, điều này sẽ thực hiện được mẹo

ng update @angular/cli

0

Bạn chỉ có thể kiểm tra mã của bạn và sau đó

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

-1

Bạn có sự phụ thuộc không hoàn hảo tôi đã giải quyết vấn đề này bằng cách thay đổi gói.json tạo thành một dự án khác và sau đó thay đổi thành packag.json này, bạn chỉ thay đổi các phiên bản phụ thuộc mà bạn có.

sau khi thay đổi, hãy viết:

liên kết -npm

-npm phục vụ -o

sau đó nó hoạt động :)

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

Tôi đã thử nó và nó cho tôi lỗi tương tự: Đường dẫn dữ liệu "" KHÔNG nên có các thuộc tính bổ sung (es5BrowserSupport).
Ekta Gandhi

-1

Tôi đã có vấn đề này, đây là cách tôi đã giải quyết nó. Vấn đề chủ yếu là phiên bản Angular của bạn không hỗ trợ phiên bản Node.js cho bản dựng. Vì vậy, giải pháp tốt nhất là nâng cấp Node.js của bạn lên bản ổn định nhất hiện tại.

Để nâng cấp sạch Node.js, tôi khuyên bạn nên sử dụng n. nếu bạn đang sử dụng Mac.

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

và bây giờ hãy kiểm tra xem bạn đã được cập nhật chưa:

node -v
npm -v

Để biết thêm chi tiết, kiểm tra liên kết này: tại đây


Sẽ rất vui khi biết lý do tại sao tôi có downvote này. Đây là một câu trả lời rõ ràng, không cần cố gắng để có một số "cách giải quyết"
arielb

bởi vì nó không liên quan đến phiên bản nút, nên nó là phiên bản angular-cli.
zhuhang.jasper

Tôi chỉ gặp vấn đề này, tôi không nghĩ đó là phiên bản angular-cli, nó liên quan đến ang-cli nhưng nó bị ảnh hưởng bởi phiên bản nút.
arielb

-1

Không có câu trả lời nào ở trên làm việc cho tôi.

Mục tiêu ban đầu của tôi là sửa lỗi đôi khi TẠO CONSTANT của dự án của tôi với VSCode.

Tôi đã thử rất nhiều cách, nhưng KHÔNG đang hoạt động - dự án chỉ KHÔNG TÍNH TOÁN!

Cuối cùng tôi đã tìm ra vấn đề ở đây là:

Tôi đã nhân bản dự án từ kho lưu trữ của công ty tôi và tất cả các mã từ đó ĐÃ đi chính xác với các phiên bản phụ thuộc khi phần hiện tại của dự án được mã hóa.

Cuối cùng, tôi đã xóa dự án nhân bản trước đó LẠI (khá nhiều lần) và nhân bản LẠI (cũng một vài lần) , và DID KHÔNG CÓ NHƯNG RAN "npm install", và mọi thứ bắt đầu hoạt động .

Bài học tôi học được ở đây là:

Đôi khi, bạn sẽ làm cho tình hình tồi tệ hơn khi bạn cố gắng khắc phục một số vấn đề (vấn đề tôi gặp phải là TÍNH TOÁN CONSTANT của dự án của tôi).

Nhưng điều đó không có nghĩa là chúng ta không thể cố gắng khắc phục vấn đề. Chúng ta có thể. Nhưng khi mọi thứ trở nên lộn xộn, chúng ta nên sử dụng mã gốc.

May mắn thay, tính toán CONSTANT của dự án của tôi chỉ xảy ra một lần, không phải tất cả thời gian. Nó không được sửa, nhưng tôi phải chịu đựng, nếu không dự án của tôi thậm chí sẽ không được biên dịch.


-2

nó hoạt động cài đặt lại @ angular-devkit / build-angular @ 0.13.4

npm install @angular-devkit/build-angular@0.13.4 --save-dev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.