J'obtiens l'erreur suivante lorsque je lance l'exécution de npm:
Le compilateur Angular nécessite TypeScript> = 3.4.0 et <3.5.0 mais 3.5.3 a été trouvé à la place.
J'ai essayé les choses suivantes séparément:
npm install TypeScript @ "> = 3.4.0 <3.5.0". Puis supprimé node_modules et package.json. Exécutez l'installation de npm
mise à jour npm --force. Puis supprimé node_modules et package.json. Exécutez l'installation de npm
Je reçois toujours l'erreur:
Mon package.json contient les dépendances suivantes:
"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 donne la sortie suivante:
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
Qu'est-ce qui pourrait mal tourner ici?
Applicable pour Angular 9 (à partir de mars 2020)
Pour les projets qui s'exécutent sur Angular 9, les versions TypeScript prises en charge sont TypeScript v3.6.5 à v3.7.5 (inclus). L'installation de toute autre version non prise en charge (telle que 3.8.3) entraînerait une erreur similaire à celle-ci:
ERROR in The Angular Compiler requires TypeScript >=3.6.4 and <3.8.0 but 3.8.3 was found instead
Pour le corriger, vous devez installer les versions prises en charge indiquées sur le message d'erreur. Je vous recommande d'installer TypeScript 3.7.x, car cela débloquera des fonctionnalités utiles telles que le chaînage optionnel et la coalescence nulle.
npm i --save-dev [email protected]
Réponse originale - Applicable pour Angular 8
Il semble que la dernière version (v3.5.3) de TypeScript soit installée. Vous devez plutôt installer TypeScript v3.4.5, qui est la version prise en charge par Angular 8.
Vous pouvez essayer cette commande pour installer la version spécifique de TypeScript, plutôt que la dernière version.
npm i --save-dev [email protected]
En outre, vous souhaiterez peut-être envisager de modifier le signe d'insertion ^
pour la version TypeScript sur votre package.json:
Le supprimer complètement signifie qu'il empêchera npm d'installer/d'utiliser la version mineure la plus récente (3.5.3).
"TypeScript": "3.4.5"
Le changer en "~" indiquerait à npm que toute version de correctif est acceptable
"TypeScript": "~ 3.4.5" // utilisera la dernière version correspondant à 3.4.X
Pour plus d'informations sur l'utilisation du versionnement des packages npm: https://docs.npmjs.com/about-semantic-versioning
Modifié - Applicable à ceux qui travaillent sur d'anciennes versions Angular, telles que Angular 2 à 7 )
|-----------------|--------------------|
| Angular version | TypeScript version |
|-----------------|--------------------|
| 6.1.x | 3.6.x |
|-----------------|--------------------|
| 7.2.x | 2.9.x |
|-----------------|--------------------|
De même, si nous utilisons d'autres versions Angular, vous pouvez installer les versions TypeScript respectives.
npm i --save-dev [email protected]
Source - Reportez-vous à la liste complète des versions TypeScript prises en charge pour chaque Angular.
Informations utiles supplémentaires
Il existe en fait un moyen d'installer des versions TypeScript qui ne sont pas prises en charge par la version Angular qui est installée dans votre projet, comme indiqué par felipesilva . Un avantage cela vous permettrait d'installer les versions les plus récentes de TypeScript (telles que TypeScript 3.8.3
) sur votre projet, déverrouillant ainsi fonctionnalités comme les champs privés.
Sur ton tsconfig.json
, vous pouvez simplement définir disableTypeScriptVersionCheck
comme true
.
{
// ...
"angularCompilerOptions": {
// ...
"disableTypeScriptVersionCheck": true
}
}
Cependant, notez que cela n'est pas recommandé par le officiel Angular documentation :
Non recommandé, car les versions non prises en charge de TypeScript peuvent avoir un comportement non défini.
Veuillez désinstaller TypeScript à l'aide de la commande suivante:
npm uninstall TypeScript
puis installez la version spécifique à TypeScript:
npm i --save-dev [email protected]
J'obtenais ce problème dans mon Angular 9
également, mais avec des numéros de version différents.
ERREUR dans le Angular nécessite TypeScript> = 3.6.4 et <3.8.0 mais 3.8.2 a été trouvé à la place.
Ce que j'ai fait,
TypeScript
et constaté qu'elle ne prend en charge que la version 3.7TypeScript
version dans package.json
comme "TypeScript": "~3.7.0"
npm i
Le ~
ici est important car il s'assurera qu'il ne sera mis à jour que vers la prochaine version du patch (<3.8.0
), pas aux versions mineures, si vous utilisez ^
il sera également mis à jour vers des versions mineures (par exemple, 4.0.0
).
Exécutez ce script pour trouver la version exacte
npm install TypeScript@">=3.4.0 and <3.5.0" --save
Votre erreur est "^" "TypeScript": "^3.4.0"
dans votre package.json
la solution est "TypeScript": "~3.4.0"
Lance ça:
npm i --save-dev TypeScript@~3.4.5
Ce problème dépend principalement de la version @ angular/cli donc TypeScript dépend de angular
lorsque vous mettez à jour angular consultez ce site Web (devDependency)
https://david-dm.org/angular/angular-cli
et fait
npm i --save-dev [email protected]
3.4.5version est requise
Bonnes nouvelles!
Vous pouvez utiliser TypeScript 3.5 si vous effectuez une mise à niveau vers Angular 8.2+. La version 8.1 ne la prend pas encore en charge.
Preuve: https://github.com/angular/angular-cli/issues/15134#issuecomment-516908416
Vous n'avez pas besoin de désinstaller et de réinstaller TypeScript pour pouvoir installer la version spécifique de TypeScript comme recommandé dans l'erreur.
npm install TypeScript@ version
ou vous pouvez courir
npm install TypeScript@ version --save-dev
pour l'enregistrer dans le package json