web-dev-qa-db-ja.com

AngularコンパイラにはTypeScript> = 3.4.0および<3.5.0が必要ですが、代わりに3.5.3が見つかりました

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

ここで何が悪いのでしょうか?

24
user5155835

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では、disableTypeScriptVersionChecktrueに設定するだけです。

{
  // ...
  "angularCompilerOptions": {
    // ...
    "disableTypeScriptVersionCheck": true
  }
}

ただし、そうすることは official Angular documentation では推奨されていません。

TypeScriptのサポートされていないバージョンが未定義の動作をする可能性があるため、推奨されません。

69
wentjun

次のコマンドを使用してTypeScriptをアンインストールしてください:

npm uninstall TypeScript

typeScript固有のバージョンをインストールします。

npm i --save-dev [email protected]
8
avinashkr

私のAngular 9でもこの問題が発生しましたが、バージョン番号が異なります。

Angularコンパイラのエラーには、TypeScript> = 3.6.4および<3.8.0が必要ですが、代わりに3.8.2が見つかりました。

enter image description here

私がしたことは、

  1. Angular 9の重大な変更 に行った
  2. TypeScriptバージョンを検索したところ、3.7のみをサポートしていることがわかりました
  3. package.jsonTypeScriptバージョンを"TypeScript": "~3.7.0"として編集
  4. 実行されたnpm i

~を使用すると、マイナーバージョンではなく、次のパッチバージョン(<3.8.0)にのみ更新されるため、ここで^は重要です。マイナーバージョンにも(たとえば、4.0.0)。

6
Sibeesh Venu

このスクリプトを実行して正確なバージョンを見つける

npm install TypeScript@">=3.4.0 and <3.5.0" --save
5
Mohammad

あなたの間違いは「^」です"TypeScript": "^3.4.0"をpackage.jsonに

ソリューションは"TypeScript": "~3.4.0"

3
x-rw

これを実行してください:

npm i --save-dev TypeScript@~3.4.5
2
Jeremy Moritz

この問題は主に@ angular/cliバージョンに依存しているため、TypeScriptはangular versionに依存しています

angularこのウェブサイトをチェックするとき(devDependency)

https://david-dm.org/angular/angular-cli

そして、やります

npm i --save-dev [email protected]

3.4.5バージョンが必要です

1
G SAIBABU

朗報です!

Angular 8.2+にアップグレードすると、TypeScript 3.5を使用できます。バージョン8.1ではまだサポートしていません。

証明: https://github.com/angular/angular-cli/issues/15134#issuecomment-516908416

0
Alexey Grinko

TypeScriptをアンインストールして再度インストールする必要はないので、エラーで推奨されている特定のバージョンのTypeScriptをインストールできます。

npm install TypeScript@ version

またはあなたは走ることができます

npm install TypeScript@ version --save-dev

パッケージjsonに保存するには

0
Lokindra Dangi