Npm run buildを実行すると、次のエラーが発生します。
AngularコンパイラにはTypeScript> = 3.4.0および<3.5.0が必要ですが、代わりに3.5.3が見つかりました。
私は別に次のことを試しました:
npm install TypeScript @ "> = 3.4.0 <3.5.0"。次に、node_modulesとpackage.jsonを削除しました。 npm installを実行します
npm update --force。次に、node_modulesとpackage.jsonを削除しました。 npm installを実行します
まだエラーが発生します:
私のpackage.jsonには次の依存関係が含まれています:
"dependencies": {
"@angular/animations": "8.1.0",
"@angular/cdk": "^8.0.2",
"@angular/cli": "^8.1.0",
"@angular/common": "8.1.0",
"@angular/compiler": "8.1.0",
"@angular/core": "8.1.0",
"@angular/forms": "8.1.0",
"@angular/http": "7.2.15",
"@angular/material": "^8.0.2",
"@angular/platform-browser": "8.1.0",
"@angular/platform-browser-dynamic": "8.1.0",
"@angular/router": "8.1.0",
"@ngx-translate/core": "^11.0.1",
"@ngx-translate/http-loader": "^4.0.0",
"angular-user-idle": "^2.1.2",
"angular2-cookie": "^1.2.6",
"core-js": "^2.6.7",
"rxjs": "6.5.2",
"rxjs-tslint": "^0.1.5",
"stream": "0.0.2",
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.801.0",
"@angular/compiler-cli": "8.1.0",
"@angular/language-service": "8.1.0",
"@types/jasmine": "~3.3.13",
"@types/jasminewd2": "~2.0.6",
"@types/node": "~12.6.1",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"protractor": "~5.4.2",
"ts-node": "~8.3.0",
"tslint": "~5.18.0",
"TypeScript": "^3.4.5"
}
ng --versionは次の出力を提供します。
Angular CLI: 8.1.2
Node: 10.16.0
OS: win32 x64
Angular: 8.1.0
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.801.2
@angular-devkit/build-angular 0.801.2
@angular-devkit/build-optimizer 0.801.2
@angular-devkit/build-webpack 0.801.2
@angular-devkit/core 8.1.2
@angular-devkit/schematics 8.1.2
@angular/cdk 8.1.1
@angular/cli 8.1.2
@angular/http 7.2.15
@angular/material 8.1.1
@ngtools/webpack 8.1.2
@schematics/angular 8.1.2
@schematics/update 0.801.2
rxjs 6.5.2
TypeScript 3.5.3
webpack 4.35.2
ここで何が悪いのでしょうか?
Angular 9に該当)(2020年3月現在)
Angular 9で実行されているプロジェクトの場合、サポートされているTypeScriptバージョンはTypeScript v3.6.5からv3.7.5を含みます。その他のサポートされていないバージョン(3.8.3など)をインストールすると、次のようなエラー:
ERROR in The Angular Compiler requires TypeScript >=3.6.4 and <3.8.0 but 3.8.3 was found instead
これを修正するには、エラーメッセージに記載されているサポートされているバージョンをインストールする必要があります。 TypeScript 3.7.xをインストールすることをお勧めします。これにより、オプションのチェーンや無効な結合などの便利な機能がアンロックされます。
npm i --save-dev [email protected]
元の回答-Angular 8に適用可能
TypeScriptの最新バージョン(v3.5.3)がインストールされているようです。代わりにTypeScript v3.4.5をインストールする必要があります。これは、Angular 8.でサポートされているバージョンです。
このコマンドを試して、最新バージョンではなく、特定のバージョンのTypeScriptをインストールできます。
npm i --save-dev [email protected]
さらに、package.jsonのTypeScriptバージョンのキャレット^
を変更することを検討してください。
それを完全に削除すると、npmが最新のマイナーバージョン(3.5.3)をインストール/使用できなくなります。
"TypeScript": "3.4.5"
これを「〜」に変更すると、どのパッチリリースでも許容できることがnpmに通知されます
"TypeScript": "〜3.4.5" // 3.4.Xに一致する最新バージョンを使用します
Npmパッケージのバージョン管理の使用に関する詳細情報: https://docs.npmjs.com/about-semantic-versioning
編集済み-古いバージョンで作業している人に適用Angular = Angular 2 to 7)など
|-----------------|--------------------|
| Angular version | TypeScript version |
|-----------------|--------------------|
| 6.1.x | 3.6.x |
|-----------------|--------------------|
| 7.2.x | 2.9.x |
|-----------------|--------------------|
同様に、他のAngularバージョンを使用している場合は、それぞれのTypeScriptバージョンをインストールできます。
npm i --save-dev [email protected]
ソース -それぞれのサポートされているTypeScriptバージョンの完全なリストを参照Angularバージョン。
その他の役立つ情報
felipesilva で指摘されているように、プロジェクトにインストールされているAngularバージョンでサポートされていない)TypeScriptバージョンをインストールする方法が実際にあります。1つの利点そうすることで、プロジェクトに最新バージョンのTypeScript(TypeScript 3.8.3
など)をインストールできるようになり、プライベートフィールドなどの features のロックが解除されます。
tsconfig.json
では、disableTypeScriptVersionCheck
をtrue
に設定するだけです。
{
// ...
"angularCompilerOptions": {
// ...
"disableTypeScriptVersionCheck": true
}
}
ただし、そうすることは official Angular documentation では推奨されていません。
TypeScriptのサポートされていないバージョンが未定義の動作をする可能性があるため、推奨されません。
次のコマンドを使用してTypeScriptをアンインストールしてください:
npm uninstall TypeScript
typeScript固有のバージョンをインストールします。
npm i --save-dev [email protected]
私のAngular 9
でもこの問題が発生しましたが、バージョン番号が異なります。
Angularコンパイラのエラーには、TypeScript> = 3.6.4および<3.8.0が必要ですが、代わりに3.8.2が見つかりました。
私がしたことは、
TypeScript
バージョンを検索したところ、3.7のみをサポートしていることがわかりましたpackage.json
のTypeScript
バージョンを"TypeScript": "~3.7.0"
として編集npm i
~
を使用すると、マイナーバージョンではなく、次のパッチバージョン(<3.8.0
)にのみ更新されるため、ここで^
は重要です。マイナーバージョンにも(たとえば、4.0.0
)。
このスクリプトを実行して正確なバージョンを見つける
npm install TypeScript@">=3.4.0 and <3.5.0" --save
あなたの間違いは「^」です"TypeScript": "^3.4.0"
をpackage.jsonに
ソリューションは"TypeScript": "~3.4.0"
これを実行してください:
npm i --save-dev TypeScript@~3.4.5
この問題は主に@ angular/cliバージョンに依存しているため、TypeScriptはangular versionに依存しています
angularこのウェブサイトをチェックするとき(devDependency)
https://david-dm.org/angular/angular-cli
そして、やります
npm i --save-dev [email protected]
3.4.5バージョンが必要です
朗報です!
Angular 8.2+にアップグレードすると、TypeScript 3.5を使用できます。バージョン8.1ではまだサポートしていません。
証明: https://github.com/angular/angular-cli/issues/15134#issuecomment-516908416
TypeScriptをアンインストールして再度インストールする必要はないので、エラーで推奨されている特定のバージョンのTypeScriptをインストールできます。
npm install TypeScript@ version
またはあなたは走ることができます
npm install TypeScript@ version --save-dev
パッケージjsonに保存するには