npm erreurs d'installation avec l'Erreur ENOENT, chmod
j'essaie d'installer globalement un module npm que je viens de publier. Chaque fois que j'essaie d'installer, que ce soit à partir du npm ou du dossier, j'obtiens cette erreur.
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/giodamlio/npm-debug.log
npm ERR! not ok code 0
j'utilise sudo et j'ai vérifié trois fois tout dans le paquet tout devrait fonctionner. J'ai fait quelques recherches, et j'ai vu quelques cas similaires dont aucun n'a été résolu. Voici ce que j'ai essayé.
- Mise à niveau de mnp (
sudo npm install -g npm
) - effacer le cache global npm (
sudo npm cache clear
) - effacer le cache npm de l'utilisateur (
npm cache clear
)
j'ai remarqué que l'erreur avait à voir avec le fichier que je relie au chemin, en particulier quand npm a essayé de faire un chmod. Cela ne devrait pas être un problème, mon lib/cli.js
a des permissions normales, et la npm a des permissions de super-utilisateur pendant cette installation.
après avoir creusé dans le npm docs j'ai trouvé une option qui arrêterait npm de faire les liens de bin ( --no-bin-links
), quand j'ai essayé l'installation avec elle, il a fonctionné très bien.
alors, c'est quoi le problème? Est-ce une bizarre frange cas de bug qui n'a pas encore trouvé de solution?
Modifier: pour référence, ici est le module que j'ai téléchargé
24 réponses
Ok on dirait que NPM utilise votre .gitignore
comme base pour le fichier .npmignore
, et donc ignore /lib
. Si vous ajoutez un fichier .npmignore
Vierge à la racine de votre application, tout devrait fonctionner.
[edit] - plus d'informations sur ce comportement ici: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
j'ai rencontré un problème similaire,
npm cache clean
résolu.
ce problème est apparu pour moi sur Mac quand J'ai essayé de lancer npm install -g bower
. Il me faisait un certain nombre d'erreurs pour ne pas être en mesure de trouver des choses comme graceful-fs. Je ne sais pas comment j'ai installé npm à l'origine, mais il semble que peut-être il est tombé avec noeud en utilisant homebrew. J'ai d'abord couru
brew uninstall node
cela a enlevé à la fois node
et npm
de mon chemin. De là, je viens de le réinstaller
brew install node
quand il complété j'ai eu node
et npm
sur mon chemin et j'ai pu courir
rm -rf ~/.npm
npm install -g bower
cela a ensuite installé la tour avec succès.
mettre à jour les formules brew et mettre à jour les installationsn'a pas semblé fonctionner pour moi, Je ne sais pas pourquoi. La suppression du dossier .npm
avait fonctionné pour d'autres personnes, et je l'avais essayé sans succès. Je l'ai fait cette fois juste au cas où. Notez également que ni l'un ni l'suivantes résolu le problème pour moi, bien qu'il ait fait pour les autres:
npm cache clean
sudo npm cache clean
j'ai eu cette erreur sur npm install and adding .npmignore ne l'a pas résolu.
erreur: ENOENT, stat "C:\Users\My-UserName\AppData\Roaming\npm
j'ai essayé d'aller dans le dossier mentionné et il n'existait pas. L'erreur a été corrigée lorsque I a créé npm dossier dans Roaming dossier.
C'est sur Windows 8.1
j'ai eu le même problème, et je viens de trouver une manipulation non mentionnée ici. Bien que je contribue à la communauté:
npm install -g myapp
ne copiait pas le répertoire bin
. J'ai trouvé que c'était parce que je ne l'ai pas inclus dans le files
dans mon package.json
"files": [
"lib",
"bin" // this was missing
]
j'ai eu un message d'erreur similaire en essayant de npm install
un tas de dépendances. Il s'avère que certains d'entre eux ne s'installent pas sur Debian/Ubuntu parce qu'ils s'attendent à ce que /usr/bin/node
soit l'exécutable du noeud. Pour corriger, vous avez besoin de do
sudo ln -s nodejs /usr/bin/node
ou mieux encore,
sudo apt-get install nodejs-legacy
pour plus d'informations: https://stackoverflow.com/a/21171188/7581
j'ai eu une erreur similaire sur npm install
sur une installation locale:
npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'
Je ne sais pas ce qui a causé l'erreur, mais j'avais récemment installé quelques nouveaux modules de noeuds localement, amélioré le noeud avec homebrew, et lancé 'npm update-g'.
la seule façon de résoudre le problème était de supprimer entièrement le répertoire local node_modules et d'exécuter npm install
à nouveau:
cd [path/to/local/installation]
npm rm -rdf node_modules
npm install
je pense que votre script café compilé est absent du paquet npm publié. Essayez d'écrire une commande prépublique .
dans mon cas (code multiple ENOENT errno 34) problème était avec ~/.npm/
l'accès à l'annuaire. À l'intérieur il y avait quelques sous-répertoires ayant les droits root:root
, qui causaient des problèmes pendant que j'exécutais des commandes en tant qu'utilisateur normal (sans sudo
). J'ai donc changé la propriété de tous les sous-répertoires et fichiers dans ~/.npm/
dir en mon utilisateur et groupe local. Cela a fait le tour sur mon Ubuntu (sur Mac devrait fonctionner aussi).
$ sudo chown yourusername.yourgroupname ~/.npm/ -R
Vous devez connaître votre nom d'utilisateur, droit? Si non, Lancez $ whoami
et remplacez votre nom de groupe par celui-ci, comme ceci:
$ sudo chown johnb.johnb ~/.npm/ -R
EDIT:
cas de Test :
de mon compte local /home/johnb
I npm-installé globalement un générateur pour yeoman
, comme ceci:
$ sudo npm install -g generator-laravel
Problème de la nature :
l'action ci-dessus a causé quelques dépendances être installé à l'intérieur de ~/.npm/
dir, ayant root:root
propriété (en raison de sudo ...
). Évidemment, npm ne s'exécute pas en tant qu'utilisateur local (ou change dependencies subdivise la propriété après) en tirant les dépendances et en les écrivant à un utilisateur local sous-DIR ~/.npm/
.
Aussi longtemps que npm serait si négligente face aux problèmes fondamentaux de sécurité du système de fichiers unix, le problème se reproduirait.
Solution :
-
vérifiez en continu si
~/.npm/
contient des sous-répertoires avec la propriété (et/ou les permissions) autre que votre compte d'utilisateur local, surtout lorsque vous installez ou mettez à jour quelque chose avecsodo
(root). Si c'est le cas, changez la propriété à l'intérieur de~/.npm/
pour un utilisateur local récursivement. -
demandez à la communauté 1519170920 qu'elle s'attaque à ce problème comme je l'ai décrit ci-dessus.
j'ai eu cette erreur en essayant d'installer un plugin grunt. j'ai trouvé que j'avais une version périmée de npm et l'erreur a disparu après avoir mis à jour npm à la dernière version
npm install -g npm
j'ai un problème similaire spécifiquement : ERR! enoent ENOENT: aucun fichier ou répertoire chmod 'node_modules/ngp/node_modules/demande/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv J'ai essayé toutes les solutions mais pas de chance. J'utilisais vagrant box, et le projet était dans un dossier partagé. Les problèmes semblent être seulement là, quand je déplace le projet dans un autre dossier non partagé (hôte woth), voilà! le problème est résolu. Juste au cas où une autre personne utilisait aussi Vagabond
j'ai essayé toutes les choses que j'ai trouvées sur le net ( npm cache clear
et rm -rf ~/.npm
), mais rien ne semble fonctionner. Ce qui a résolu le problème était la mise à jour de noeud (et npm) à la dernière version. Essayez que.
dans Windows j'ai eu une erreur similaire.
Rechercher coller les données de L'application et rechercher la chaîne de caractères npm
.
j'ai remplacé la chaîne de caractères 'npm'
(y compris les guillemets) par 'npm.cmd'
dans atlasboard\lib\package-dependency-manager.js
et atlasboard\lib\cli\commands.js
. Qui a résolu le problème.
la même erreur lors de l'installation globale ( npm install -g mymodule
) pour un paquet avec un script non existant.
dans l'emballage.json:
...
"bin": {
"module": "./bin/module"
},
...
mais le ./bin/module
n'existe pas, car il a été nommé modulejs
.
- installer la dernière version de node
- Run: mnp cache propre
- Run: npm install cordova-g
Vous pouvez obtenir cette erreur si votre nœud.js est endommagé en quelque sorte. J'ai corrigé cette erreur par désinstaller/redémarrer/nœud d'installation.js complètement et il a corrigé cette erreur, avec les trois autres erreurs mystérieuses qui sont lancées.
j'ai rencontré un comportement similaire après avoir passé au npm 6.1.0
. Cela semblait fonctionner une fois, mais ensuite j'ai été dans un état avec cette erreur en essayant d'installer un paquet qui était spécifié par path sur le système de fichiers:
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
les choses suivantes n'ont pas corrigé le problème :
-
rm -rf node_modules
-
npm cache clean
(anpm ERR! As of npm@5, the npm cache self-heals
....use 'npm cache verify' instead.
) -
npm cache verify
-
rm -rf ~/.npm
Comment j'ai réglé le problème :
-
rm package-lock.json
j'ai eu un problème similaire avec une cause différente: le générateur yo node
avait ajouté "files": ["lib/"]
à mon package.json
et parce que mon cli.js
était en dehors du répertoire lib/
, il a été sauté lors de la publication au npm.
(Yeoman question https://github.com/yeoman/generator-node/issues/63 , il devrait être bientôt corrigé.)
je recevais le message d'erreur ENOENT, stat 'C:\Users\userName\AppData\Roaming\npm'. Mais il n'y a pas de répertoire de ce type. A créé le répertoire et l'installation npm a commencé à fonctionner
j'ai récemment mis à niveau en noeud 4.2.1 sur une machine Windows 7 x64. En cours d'exécution
npm install -g bower
j'ai eu une erreur similaire:
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\THE_USERNAME\AppData\Local\Temp\npm-THE_HASH
pensant que C'était lié au chemin D'AppData, j'ai joué avec
npm config edit
et
npm config edit --global
pour changer les champs de préfixe, cache et tmp mais a reçu la même erreur avec les nouveaux chemins:
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\THE_USERNAME\npm-temp\npm-THE_HASH
toutes les commandes ont été exécutées en tant qu'administrateur, donc j'ai eu toutes les permissions.
puis j'ai pensé qu'il y avait des problèmes avec les fichiers existants donc j'ai couru:
npm cache clean
But eu la même erreur. Cependant, il y avait encore des dossiers temporaires. Suppression manuelle de toutes les données temp avec cygwin a finalement réglé le problème pour moi:
rm -rf bower bower.cmd node_modules etc
si vous n'avez que le cmd de Windows, vous pouvez utiliser quelque chose comme
rmdir /S THE_TEMP_DIR
pour supprimer tous les sous-répertoires (bien que si vous avez des dépendances de noeuds profondément imbriquées, cela est notoirement problématique)
donc, il ya peut-être des problèmes avec la mise à niveau de la NGP et ayant des versions de bower ou d'autres paquets traîner autour. Dans mon cas, cela semblait être le problème
lors de l'installation ionique j'ai obtenu en dessous de l'erreur
115648 d'erreur enoent ENOENT: aucun fichier ou répertoire, renommer "C:\Users\UserName\AppData\Roaming\npm\node_modules.mise en scène\ansi-b11f0c4b' - >"C:\Users\UserName\AppData\Roaming\npm\node_modules\ionic\node_modules\cordova-lib\node_modules\ansi
il n'y avait pas de dossier appelé ansi
à ce chemin. Je l'ai créé là et il s'est installé correctement.
si vous avez essayé de "faire installer" dans votre répertoire de projet avec cette erreur, vous pouvez l'essayer:
rm -rf ./node_modules
npm cache clear
npm remove sails
alors vous pouvez essayer de "faire installer"
si vous avez le " npm ERR! enoent ENOENT: aucun fichier ou répertoire chmod '.../djam-backend/node_modules/js-embellir/js/bin/css-embellir.js '"ensuite, vous pouvez essayer d'installer une version précédente de la js-beautify, plus de commentaires: https://github.com/beautify-web/js-beautify/issues/1247
"dependencies": {
...
"js-beautify": "1.6.14"
...
}
et l'exécution"make install". Cela semble fonctionner dans le cas où si vous n'avez pas d'autres dépendances qui nécessitent une version plus élevée (1.7.0) dans ce cas, vous devez également dégrader ces paquets dans les paquets.json.
ou
rien de ce qui précède n'a fonctionné pour moi. Mais yarn install
a fonctionné, puis npm i
a commencé à fonctionner. Pas sûr de ce fil fixe, mais solution rapide et facile!
s'il vous Plaît essayer cette
SET HTTP_PROXY=<proxy_name>
alors essayez cette commande.Il fonctionnera