J'ai essayé d'exécuter yo angular
dans un nouveau répertoire de projet, mais cela m'a donné l'erreur ENOENT quelque part en cours de route. Oui, j'ai regardé cette question similaire , mais sa solution ne fonctionne pas pour moi.
J'ai exécuté ces choses sur le nouveau répertoire de projet vide juste avant d'exécuter yo angular
:
touch .npmignore
npm cache clear
npm cache clean
Mais je reçois toujours:
npm ERR! Error: ENOENT, lstat '/home/ubuntu/app_c/node_modules/grunt/ internal-tasks/bump.js'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! System Linux 3.2.0-54-virtual
npm ERR! command "/home/ubuntu/local/bin/node" "/home/ubuntu/local/bin/ npm" "install"
npm ERR! cwd /home/ubuntu/app_c
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! path /home/ubuntu/app_c/node_modules/grunt/internal-tasks/bump. js
npm ERR! fstream_path /home/ubuntu/app_c/node_modules/grunt/internal- tasks/bump.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /home/ubuntu/local/lib/node_modules/npm/ node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
Comment puis-je le réparer?
Voici le historique de TOUTES les commandes, dans l'ordre chronologique, que j'ai exécutées sur un tout nouveau serveur Ubuntu 12.04.3, afin que vous puissiez voir exactement ce qui a mené à ce point, et où j'ai installé divers forfaits.
Cette question est liée à un npm problème github .
ÉDITER: npm update -g
suivi par npm cache clear
devrait fonctionner pour la plupart. Cependant, lors de la première installation sur Mac OS, vous devrez peut-être accéder à votre usr/local/lib/node_modules
dossier une fois que nodeJS est installé pour la première fois et accordez l'autorisation de lecture/écriture à "Tout le monde". Node ne pourra pas installer de composants de workflow supplémentaires globalement tant que ces autorisations ne seront pas libérées. Vous ne voulez pas lancer Sudo les commandes d'installation de npm, car alors ces outils n'auront pas accès à Sudo pour Les autorisations de lecture/écriture sont modifiées en cliquant avec le bouton droit sur le dossier et en allant dans "Obtenir des informations", puis en modifiant les autorisations en bas de la fenêtre contextuelle.
J'ai eu ce même problème sur la machine Windows 7. Voici les étapes que j'ai prises pour résoudre:
npm update -g
npm cache clear
npm install -g yo
npm cache clear
npm install -g generator-angular
npm cache clear
yo angular test
npm cache clear
grunt serve
J'ai rencontré quelques autres problèmes avec karma.conf.js où les chemins avaient un \
au lieu de /
pour bower_components. De plus, j'ai remarqué que les modules optionnels angular ont été injectés dans mon app.js bien qu'ils ne les aient pas tous inclus dans ma version yo de la cli. J'ai signalé ces problèmes sur github.
npm ERR! commande "/ home/ubuntu/local/bin/node"
Installez-vous dans un répertoire utilisateur? J'ai fait et j'ai eu des erreurs ENOENT aussi.
J'ai dû mkdir certains répertoires. S'ils ne sont pas là, essayez de créer certains répertoires dans le debug.log, comme lib/node_modules.
Mettez à jour le nœud (et npm) vers la dernière version, et cela devrait résoudre le problème.
Ces erreurs ENOENT
(et parfois EACCES
) sont souvent causées par d'anciennes versions de npm
. Malheureusement, même la dernière version de node
ne distribue pas la version actuelle de npm
.
Après avoir installé node
, exécutez npm -v
. Si vous ne voyez pas 2.1.18
Ou une version ultérieure, vous devez mettre à niveau en suivant les instructions officielles ici https://github.com/npm/npm/wiki/Troubleshooting#try-the-latest-stable -version-of-npm
Sous OSX, la mise à niveau rapide est Sudo npm install -g npm@latest
Sous Windows, suivez le guide du wiki ou lisez cette réponse Comment mettre à jour npm sous Windows?
cmd.exe cd C:\Program Files (x86)\nodejs npm install npm@latest
Mon problème était un cassé package.json. Peut-être que cela aidera quelqu'un.