エラー:データパス“ .builders ['app-shell']”には必要なプロパティ 'class'が必要です


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 @schematics / angular -7.3.3 @ schematics / update 0.13.3 rxjs 6.3.3 typescript 3.2.4 webpack 4.30.0
Ekta Gandhi

1
この問題は通常、互換性のないパッケージが原因です。最近package.jsonを更新しましたか?
Deepika、

7
最後に私は解決策を見つけました。1)まず、簡単なコマンドgit checkout package.jsonを実行して、package.jsonファイルのすべての変更を削除します。2)次に@ angular-devkit / build-angular-のpackage.jsonに変更を加えた後〜0.800.1(キャップ​​の代わりに尾を追加)3)次にコマンドrm -rf node_modules /を実行します。 clean cache -f 5)そして最後にコマンドnpm installを実行します。これは私にとってはうまくいきます。
Ekta Gandhi

1
上記npm clean cache -fは間違っていますnpm cache clean --force
Fabien Haddadi

2
私が見つけたのは、間違ったバージョンのノードを使用するようにnvmを設定していたためですnvm use 12.14.01(私の場合)
QuietSeditionist

回答:


172

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"、それはうまくいった。
Dimuthu

3
完璧です。「0.13.4」で動作し、後でnpmビルドを実行
SouravOrii

1
js-yaml <3.13.1で検出されたセキュリティの脆弱性に関する通知を受け取ったため、ここに着陸しました。それを更新した後、私はこのエラーメッセージを受け取りました。とにかく、"^0.10.0"それを修正しました。
Alesh Houdek

11
0.13.4でうまくいきましたが、まずnode_modulesフォルダーを削除し、package-lock.jsonを削除してから、npm installを実行してください。すべてを修正するようです。
インディジョーンズ

5
このソリューションは機能しますが、それは誤りです。代わりに、angularおよびangular cliバージョンをアップグレードする必要があります。以下の@ovangleの回答をチェックしてください
Francesco

101

フォローしてくれた

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

3
この答えは直接的ですが、リソースや参照が不足しています。盲目的に直接、特定のパッケージバージョンをインストールする人々は、プロジェクト全体を混乱させる可能性があります。明確にして、参考にしてください。
Zakky

70

ここの誰もが、互換性のために@ angular-devkit / build-angularを@angular 7.xバージョンにダウングレードすることに焦点を当てていますが、彼らがしなければならないことは@angular/cli、angular 8バージョンにアップグレードすることです。

問題は、システムcliが古いバージョンのままであり、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
進行中の

4
実行するnpm audit fixと、ブレーキが変更されることがあります。代わりにnpm audit、調査結果を理解してパッケージを1 npm i --save-dev <package@version>
Naren

1
@zhuhangそれは明らかに偽りです。グローバルCLIをアップグレードすると、最新のいくつかのバージョンとの後方互換性が期待できますが、必ずしも前方互換性があるとは限りません。
ovangle

1
@ovangle上位互換性について言及しなかった。私は人々が盲目的にアップグレードまたはダウングレードしてはいけないと言っています、特にangular-cliバージョン。現在のCLIバージョンを識別し、そのCLIに一致する開発キットを使用する必要があります。devkitパッケージをアップグレードする場合は、CLIを完全にアップグレードするのが適切です。
zhuhang.jasper

62

誰もが@angular-devkit/build-angularバージョンをX にダウングレードするか、@angular/cliバージョンをYまたは最新にアップグレードすることに集中しています。

ただし、答えを盲目的に提案しないでくださいX or Y or latest(ただし、CLIのアップグレードは重大な変更であるため、通常、devkitのダウングレードの方が適切です)

選択する正しいバージョンは、常にあなたの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しかし、で私の角度CLIを残した7.3.x。私は私の角度CLIをアップグレードするつもりはなかったので、私は戻っ版使用に行ってきました0.13.x開発キットの
グレッグL

2
@GreggL実際、私の回答は、賛成票が最も多い回答よりも優れています。他の答えは単に盲目的にアップグレード/ダウングレードすることを提案しています。私の回答が示唆しているように、正しいCLI / devkitバージョンは相互に関連していますが、Fを与える人はいません。
zhuhang.jasper

あなたは命の恩人です、tx!しかし、cli 7.0.6について何か考えはありますか?そこには書かれていません
ErhanYaşar

2
この素晴らしい答えに追加するには:私のプロジェクトでは、開発@angular/cli依存関係に含め、それがと一致することを確認してい@angular-devkit/build-angularます。そうすれば、複数のCLIバージョンで複数のプロジェクトを維持できます。そうした場合、ng sあなたが行う場合には、お使いのコンピュータのCLIを使用しますnpm start(内のスクリプトであるpackage.json行うng serveことが実際には右のCLIで、このアプリを起動ローカルCLIを使用することを願って、このことができます。
ma.D

本日(ソースNPM)の時点でAngular 9用に更新:0.901.1->最新、0.1000.0-next.0->次、0.8.9-> v6-lts、0.803.26-> v8-lts、0.13 .10-> v7-lts
Massimiliano Caniparoli

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

修正しました...


このソリューションのバージョンは誰かの要件ではない可能性があるため、このソリューションは実行できない場合があります。パッケージロックjsonを削除するnpm i @angular-devkit/build-angular
Tejashree

14

同じ問題がありましたが、Ekta Gandhiのコメントのおかげで解決しました。

最後に私は解決策を見つけました。

1)まず、簡単なコマンドgit checkout package.jsonを実行して、package.jsonファイルのすべての変更を削除します。

2)@ angular-devkit / build-angular-〜0.800.1のpackage.jsonに変更を加えた後(キャップ​​の代わりに尾を追加)

3)次に、コマンドrm -rf node_modules /を実行します

4)次に、コマンドnpm clean cache -fを実行してキャッチをクリーンアップします

5)最後に、コマンドnpm installを実行します。これでうまくいきます。

.... Dimuthuによって提案された修正とともに

@ angular-devkit / build-angular ":" 0.13.4 "にすると、うまくいきました。


@ angular-devkit / build-angularのバージョン「0.13.4」には、遅延読み込みされたコンポーネントを使用するときに問題があることに注意してください。この問題を回避するには、ユーザーは@ angular-devkit / build-angularパッケージを更新する必要があります...ここでのトレードオフのようなものです
Adan

7

これは、Angular 8をインストールしたときに起こりました。解決できない非互換性がいくつかあります。機能するバージョンが見つかるまで、すべてのバージョンでジャグリングしているウサギの穴をダウングレードしたため、ダウングレードする必要がありました。

まず、TypeScriptは古く、デフォルトのインストールではTypeScript 3.1.6への参照が追加され、3.4以上が必要です。

npm install typescript@">=3.4 <3.5"

次に、開発キット0.800.1または0.800.1を使用すると、常に非互換になります。多くの組み合わせを試しましたが、まだ完全に互換性があるかどうかはわかりません。特に、1つ古いブートストラップを使用していて、まだアップグレードできないためです。

最後に、いずれかが機能するまでダウングレード(package.jsonに移動してdevDependenciesを検索)しようとしました。

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

あなたの問題は依存関係のバージョンであると確信していますが、どのバージョンであるかはわかりません。ダウングレードしてみてください。


それが動作している間、それが動作@angular-devkit/build-angular": "0.13.8"する最新バージョンであると思われるため、私は提案します
M. Doe

どうもありがとう。ブートストラップのバージョンまたは依存関係により、0.13.4より高くすることはできないようですが、多くの人にとっては効果的です
Maximiliano Rios

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

私もこの問題に遭遇していました。更新を行うと、より多くの問題が発生しました。

最終的に私にとってうまくいったのは、多かれ少なかれ、角度のあるcliを削除して、次の手順で再インストールすることでした。

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-devkit/build-angular": "0.9.0.1"@angular-devkit/build-angular": "0.13.4"て、うまくいきました。


私のために働いた、また正しいバージョンがダウンロードされたことを確認するためにnpm installを実行しなければならなかった。
David Brunning

2

私もこの問題に直面し、それを解決するのに何時間も苦労しました。上記のオプションをすべて試しましたが、私の問題は何も解決しませんでした。この問題は、angular / cliとangular-devkitのバージョンの不一致が原因で発生するため、次のようにしました。

  1. ファイルの手動で変更されたバージョン:

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

    @angular/cli": "~7.0.3", //これはAngular7、Angular8の場合:0.803.23

  2. package-lock.jsonを削除しました

  3. 実行:npm install

それは私の問題を解決しました。


1

私の側ではパッケージでした

@ angular-devkit / build-angular

そして

@ angular-devkit / build-ng-packagr

同じバージョンではありませんでした。問題build-ng-packagrbuild-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)を持っていてはなりません。
Ekta Gandhi

-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

詳細については、このリンクを確認してください:ここに


なぜ私がこの反対票を得たのかを知りたいと思っています。これは、いくつかの「回避策」を
講じよ

ノードのバージョンとは関係がないため、angular-cliバージョンである必要があります。
zhuhang.jasper

私はこの問題を抱えていました、それはangular-cliバージョンではないと思います。angular-cliに関連していますが、ノードバージョンの影響を受けています。
arielb

-1

上記の答えのどれも私にとってはうまくいきません。

私の当初の目標は、VSCodeを使用してプロジェクトの時々一定のコンパイルを修正することでした。

私は多くの、多くの方法を試してみましたが、何もは働いていなかった-プロジェクトだけWILL NOT COMPILIE!

最後に私はここの問題が何であるかを見つけました:

私は会社のリポジトリからプロジェクトのクローンを作成しました。そこからのすべてのコードは、プロジェクトの既存の部分がコーディングされたときの依存関係のバージョンと完全に一致する必要があります。

最後に、以前に複製されたプロジェクトAGAIN(数回終了)を削除し、AGAIN(これも数回)を複製しましたが、RAN "npm install"を実行しなかったため、すべてが機能し始めました

ここで学んだ教訓は、

いくつかの問題を修正しようとすると、状況が悪化することがあります(私が抱えていた問題は、プロジェクトの常時コンパイルでした)。

ただし、問題の修正を試みられないという意味ではありません。私たちはできる。しかし、すべてがめちゃくちゃになったら、元のコードを使用する方がよいでしょう。

幸い、私のプロジェクトの常時コンパイルは、常にではなく、たまにしか発生しません。修正されていませんが、我慢する必要があります。そうしないと、プロジェクトがコンパイルできません。


-2

それは@ angular-devkit / build-angular @ 0.13.4を再インストールする作業です

npm install @angular-devkit/build-angular@0.13.4 --save-dev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.