Mise à niveau de mon projet vers Angular 4.0 (depuis 2.4) avec Angular CLI 1.0 (depuis beta.31), le message d'erreur ci-dessous s'affiche après avoir suivi le guide de migration :
> ng build --prod
The "@angular/compiler-cli" package was not properly installed.
Error: The "@angular/compiler-cli" package was not properly installed.
at Object.<anonymous> (/home/jan/src/fm-repos/fm-ui/node_modules/@ngtools/webpack/src/index.js:14:11)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/jan/src/fm-repos/fm-ui/node_modules/@angular/cli/tasks/eject.js:10:19)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
Mes dépendances angulaires post-migration:
"@angular/animations": "^4.0.0",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/compiler-cli": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"@angular/cli": "1.0.0",
"@angular/material": "2.0.0-beta.3",
Remarque: cette question similaire concerne le projet Angular 2: le package d'erreur "2 @ angular2 de la CLI" n'a pas été correctement installé
Assurez-vous que vous avez TypeScript 2.2 dans votre package.json
et que votretsconfig
est correctement mis à jour.
Détails :
Avec Angular CLI 1.0 installé, créez un nouveau projet factice:
ng new dummy
puis supprimez les répertoires node_modules
:
rm -rf ./dummy/node_modules
rm -rf ./myproject/node_modules
et diff
les changements entre le projet dummy
et votre projet:
diff -bur ./dummy/ ./myproject/
Parmi les nombreux changements, le changement crucial nécessaire pour remédier à cette erreur pour moi était celui de TypeScript et les changements tsconfig
:
package.json
:
"TypeScript": "~2.0.3" ==> "TypeScript": "~2.2.0"
.angular-cli.json
Changement:
"tsconfig": "tsconfig.json"
à:
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
et ajoutez ces nouveaux fichiers à partir de votre projet dummy
et installez vos paquets:
npm install
npm uninstall -g angular-cli
rm -rf ./node_modules
rm package-lock.json
npm install --save-dev @angular/cli@latest
si l'installation de la dernière version génère toujours une erreur, vous pouvez exécuter à nouveau le processus de désinstallation et entrer manuellement la version d'angular-cli après avoir vérifié la dernière version dans le référentiel angular-cli. Mon package.json répertorié ^ 1.3.0, mais il y avait une version bêta qui vient de sortir et quand je l'ai modifié manuellement
"@angular/cli": "^1.3.0-beta.0"
npm i
Il s'est installé avec succès
Pour moi, aucune des solutions ci-dessus n'a fonctionné, mais la mise à jour globale de npm et TypeScript a fonctionné.
Pour mettre à jour, exécutez ces commandes:
npm update
npm update -g TypeScript
J'ai tout essayé, et la seule chose qui a fonctionné pour moi était une installation simple npm
Cela a fonctionné comme par magie
npm installer --save-dev del
Ouvrez package.json et déplacez @angular/cli
sous des dépendances telles que:
"dependencies": {
"@angular/animations": "^4.0.0",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/cli": "1.2.1",
"@angular/compiler-cli": "^4.3.1",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"core-js": "^2.4.1",
"rxjs": "^5.1.0",
"zone.js": "^0.8.4"
},
Allez ensuite dans le dossier du projet dans l'invite de commande et exécutez la commande "npm install" Il va charger toutes les dépendances nécessaires.
Je viens de changer "@ angular/compiler-cli": "^ 4.3.2" à partir de "@ angular/compiler-cli": "^ 4.0.0" dans devDependencies dans le fichier package.json.
Ça a fonctionné pour moi
Essayez ces étapes s'il vous plaît: Nettoyer
remove node_modules from your project
remove any angular-cli and @angular/cli references from package.json if it's there
Uninstall angular-cli and @angular/cli globally: npm uninstall -g angular-cli @angular/cli
Réinstaller
Install @angular/cli globally: npm install -g @angular/cli
Install @angular/cli in your project: npm install --save-dev @angular/cli
J'ai eu le même message d'erreur sur mon Mac sous OS OS 10.12.4 lorsque je configurais Angular 2.
J'ai également eu un problème similaire sur deux ordinateurs Windows 10 différents. Les machines Windows ont reçu une erreur qui a déclaré,
Node_modules appears empty, you may need to run `npm install`.
Dans les deux cas, j'ai pu résoudre le problème en exécutant npm install
dans le répertoire du projet.
Je suis allé dans la ligne de commande/terminal et ensuite dans le répertoire où le projet a été stocké, par exemple:
c:\Users\myname\projectname>
Pour Windows, j'ai utilisé la commande npm install
et sous Mac, j'ai utilisé Sudo npm install
.
Dans les deux cas, le problème a été résolu.