J'essaye d'installer globalement un module npm que je viens de publier. Chaque fois que j'essaie d'installer, que ce soit à partir de 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 package, 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é.
- Mettre à jour npm (
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 était liée au fichier que je lie au chemin, en particulier lorsque npm a essayé de faire un chmod. Cela ne devrait pas être un problème, mon lib/cli.js
a des autorisations normales et npm a des autorisations de super-utilisateur pendant cette installation.
Après avoir fouillé dans les documents npm, j'ai trouvé une option qui empêcherait npm de créer les liens bin ( --no-bin-links
), lorsque j'ai essayé l'installation avec, cela fonctionnait bien.
Alors, quel est le problème? Est-ce un étrange bug de cas marginal qui n'a pas encore de solution?
Edit: Pour référence, voici le module que j'ai téléchargé
--no-bin-links
simple arrête npm de lier symboliquement les fichiers dubin
hachage de package.json au chemin lors de l'installation globale.Réponses:
Ok, il semble que NPM utilise votre
.gitignore
comme base pour le.npmignore
fichier et ignore donc/lib
. Si vous ajoutez un.npmignore
fichier vierge à la racine de votre application, tout devrait fonctionner.[modifier] - plus d'informations sur ce comportement ici: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
la source
J'ai rencontré un problème similaire,
résolu.
la source
npm cache verify
et cela a fonctionné. merci pour un indice.npm install --cache /tmp/empty-cache
utiliser un cache temporaire au lieu de détruire le cache réel.Ce problème est survenu pour moi sur Mac lorsque j'essayais de courir
npm install -g bower
. Cela me donnait un certain nombre d'erreurs pour ne pas être en mesure de trouver des choses comme gracieux-fs. Je ne sais pas comment j'ai installé npm à l'origine, mais il semble que cela soit venu avec node en utilisant homebrew. J'ai d'abord couruCela a supprimé à la fois
node
etnpm
de mon chemin. De là, je viens de le réinstallerQuand il a terminé, j'ai eu
node
etnpm
sur mon chemin et j'ai pu courirCela a ensuite installé le bower avec succès.
La mise à jour des formules de brassage et la mise à niveau des installations ne semblaient pas fonctionner pour moi, je ne sais pas pourquoi. La suppression du
.npm
dossier était quelque chose qui avait fonctionné pour d'autres personnes, et je l'avais essayé sans succès. Je l'ai fait cette fois au cas où. Notez également qu'aucun des éléments suivants n'a résolu le problème pour moi, bien que ce soit le cas pour d'autres:la source
J'obtenais cette erreur lors de l'installation de npm et l'ajout de .npmignore ne l'a pas résolu.
J'ai essayé d'accéder au dossier mentionné et il n'existait pas. L'erreur a été corrigée lorsque j'ai créé le dossier npm dans le dossier Roaming .
C'est sur Windows 8.1
la source
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 lebin
répertoire. J'ai trouvé que c'était parce que je ne l'ai pas inclusfiles
dans monpackage.json
la source
files
clé dans monpackage.json
avec quelques entrées commeindex.js
etLICENSE
, mais pas lebin
dossier. Cela fonctionne donc s'il n'y a pas defiles
clé du tout, ou s'il y a unefiles
clé ET lebin
dossier dans.J'obtenais une erreur similaire
npm install
sur une installation locale:Je ne suis pas sûr de la cause de l'erreur, mais j'avais récemment installé quelques nouveaux modules de nœuds localement, mis à niveau le nœud avec homebrew et exécuté 'npm update -g'.
La seule façon dont j'ai pu résoudre le problème était de supprimer entièrement le répertoire local node_modules et de le relancer
npm install
:la source
J'ai un problème similaire en particulier: ERR! enoent ENOENT: aucun fichier ou répertoire de ce type, chmod 'node_modules / npm / node_modules / request / node_modules / http-signature / node_modules / sshpk / bin / sshpk-conv J'ai essayé toutes les solutions ci-dessus mais pas de chance. J'utilisais vagrant box et le projet était dans un dossier partagé. Les problèmes ne semblent être que là, lorsque je déplace le projet vers un autre dossier non partagé (avec l'hôte), voila! problème résolu. Juste au cas où une autre personne utiliserait aussi vagrant
la source
J'ai reçu un message d'erreur similaire en essayant
npm install
un tas de dépendances. Il s'avère que certains d'entre eux ne parviennent pas à s'installer sur Debian / Ubuntu car ils s'attendent/usr/bin/node
à être l'exécutable du nœud. Pour réparer, vous devez faireou mieux encore,
Pour plus d'informations: https://stackoverflow.com/a/21171188/7581
la source
J'ai rencontré un comportement similaire après la mise à niveau vers npm
6.1.0
. Cela a semblé fonctionner une fois, mais je suis ensuite entré dans un état avec cette erreur en essayant d'installer un package spécifié par le chemin sur le système de fichiers:Les éléments suivants n'ont pas résolu le problème :
rm -rf node_modules
npm cache clean
(a donnénpm 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ésolu le problème :
rm package-lock.json
la source
Je pense que votre script de café compilé est absent du package npm publié. Essayez d'écrire une commande de prépublication .
la source
takeapeek/lib/cmd.js
n'existe pas. Même si le dossier lib peut être «là» lorsque vous publiez, il ne sera pas «là» lorsque vous installez via npm à moins qu'il ne fasse partie du référentiel, ou à moins que vous n'utilisiez la pré-publication pour le créer.Dans mon cas (code multiple ENOENT errno 34), le problème était lié à l'
~/.npm/
accès au répertoire. À l'intérieur, il y avait des sous-répertoires ayant desroot:root
droits, qui posaient des problèmes lorsque j'exécutais des commandes en tant qu'utilisateur normal (sanssudo
). J'ai donc changé la propriété de tous les sous-répertoires et fichiers à l'intérieur de~/.npm/
dir en mon utilisateur et groupe locaux. Cela a fait l'affaire sur mon Ubuntu (sur Mac devrait fonctionner aussi).Vous devriez connaître votre nom d'utilisateur, non? Si non, exécutez
$ whoami
et remplacez le nom de votre groupe par lui aussi, comme ceci:ÉDITER:
Cas de test :
Depuis mon compte local,
/home/johnb
j'ai installé globalement npm un générateur pouryeoman
, comme ceci:Nature du problème :
L'action ci-dessus a provoqué l'installation de certaines dépendances dans
~/.npm/
dir, ayantroot:root
propriété (à cause desudo ...
). Évidemment, npm ne s'exécute pas en tant qu'utilisateur local (ou modifie ensuite la propriété des sous-répertoires de dépendances) lors de l'extraction des dépendances et de leur écriture dans un sous-répertoire utilisateur local~/.npm/
. Tant que npm serait si insouciant face aux problèmes fondamentaux de sécurité du système de fichiers Unix, le problème se reproduirait.Solution :
Vérifiez en permanence s'il
~/.npm/
contient des sous-répertoires avec la propriété (et / ou les autorisations) autres que votre compte d'utilisateur local, en particulier lorsque vous installez ou mettez à jour quelque chose avecsodo
(root). Si tel est le cas, modifiez la propriété à l'intérieur~/.npm/
en un utilisateur local de manière récursive.Demandez à la
npm, bower, grunt, ...
communauté de résoudre ce problème comme je l'ai décrit ci-dessus.la source
J'ai eu cette erreur en essayant d'installer un plugin grunt. J'ai trouvé que j'avais une version obsolète de npm et l'erreur a disparu après la mise à jour de npm vers la dernière version
la source
J'ai essayé tous les trucs que j'ai trouvés sur le net (
npm cache clear
etrm -rf ~/.npm
), mais rien ne semble fonctionner. Ce qui a résolu le problème était la mise à jour du nœud (et de npm) vers la dernière version. Essayez ça.la source
Dans Windows, j'ai eu une erreur similaire. Recherchez coller les données d'application et recherchez la chaîne
npm
.J'ai remplacé la chaîne
'npm'
(y compris les guillemets) par'npm.cmd'
à la foisatlasboard\lib\package-dependency-manager.js
etatlasboard\lib\cli\commands.js
. Cela a résolu le problème.la source
La même erreur lors de l'installation globale (
npm install -g mymodule
) pour le package avec un script non existant.Dans package.json:
Mais le
./bin/module
n'existait pas, comme il a été nommémodulejs
.la source
la source
Vous pouvez obtenir cette erreur si votre node.js est également corrompu. J'ai corrigé cette erreur en désinstallant / redémarrez / installant complètement node.js et cela a corrigé cette erreur, ainsi que les trois autres erreurs mystérieuses qui sont générées.
la source
Faites attention aux valeurs invalides pour les clés "répertoires" et "fichiers" dans package.json
Si vous démarrez avec une nouvelle application et que vous souhaitez démarrer complètement vide, vous devez soit démarrer dans un dossier vide complet, soit contenir un fichier package.json valide.
Si vous ne souhaitez pas créer d'abord un fichier package.json, tapez simplement:
npm i some_package
Le paquet avec le nom "some_package" doit être installé correctement dans un nouveau sous-dossier "node_modules".
Si vous créez d'abord un fichier package.json, tapez:
npm init
Conserver toutes les valeurs par défaut (en cliquant simplement sur ENTRÉE), vous devriez vous retrouver avec un fichier valide.Ça devrait ressembler à ça:
Notez que les clés suivantes sont manquantes: " répertoires ", " référentiel " et " fichiers ". Il semble que si vous utilisez des valeurs incorrectes pour " répertoires " et / ou " fichiers ", vous ne pourrez pas installer le package. Laisser ces clés de côté, a résolu le problème pour moi.
Notez également la touche " principale ". Celui-ci est présent, mais il contient une valeur invalide. Aucun fichier "index.js" n'existe (encore). Vous pouvez le supprimer en toute sécurité.
Maintenant, tapez:
npm i some_package
et le package avec le nom "some_package" doit être installé correctement dans un nouveau sous-dossier "node_modules".la source
J'ai presque tout essayé puis finalement ceci:
Il suffit de supprimer node_modules puis exécutez à
'npm install'
nouveaula source
J'ai eu un problème similaire avec une cause différente: le
yo node
générateur avait ajouté"files": ["lib/"]
à monpackage.json
et parce que moncli.js
était en dehors dulib/
répertoire, il était ignoré lors de la publication sur npm.(Le problème Yeoman sur https://github.com/yeoman/generator-node/issues/63 devrait être corrigé bientôt.)
la source
J'obtenais l'erreur "Erreur: ENOENT, stat 'C: \ Users \ userName \ AppData \ Roaming \ npm'. Mais ce répertoire n'existait pas. J'ai créé le répertoire et l'installation de npm a commencé à fonctionner
la source
J'ai récemment mis à niveau vers le nœud 4.2.1 sur une machine Windows 7 x64. En courant
J'ai eu une erreur similaire:
Pensant que c'était lié au chemin AppData, j'ai joué avec
et
pour changer les champs prefix, cache et tmp mais a reçu la même erreur avec les nouveaux chemins:
Toutes les commandes étaient exécutées en tant qu'administrateur, j'avais donc toutes les autorisations.
Ensuite, j'ai pensé qu'il y avait des problèmes avec les fichiers existants, alors j'ai couru:
Mais j'ai eu la même erreur. Cependant, il y avait encore des fichiers temporaires qui traînaient. La suppression manuelle de toutes les données temporaires avec cygwin a finalement résolu le problème pour moi:
Si vous n'avez que Windows cmd, vous pouvez utiliser quelque chose comme
pour supprimer tous les sous-répertoires (bien que si vous avez des dépendances de nœuds profondément imbriquées, cela est notoirement problématique)
Donc, il y a peut-être des problèmes avec la mise à niveau de npm et la présence de versions de bower ou d'autres packages. Dans mon cas, cela semblait être le problème
la source
Lors de l'installation d'ionic, j'ai eu une erreur ci-dessous
Aucun dossier n'a été appelé
ansi
sur ce chemin. Je l'ai créé là-bas et il s'est installé correctement.la source
Si vous avez essayé de "faire l'installation" dans le répertoire de votre projet avec cette erreur, vous pouvez l'essayer:
alors vous pouvez essayer de "faire l'installation"
Si vous avez le "npm ERR! Enoent ENOENT: aucun fichier ou répertoire de ce type, chmod '... / djam-backend / node_modules / js-beautify / js / bin / css-beautify.js'" alors vous pouvez essayer d'installer une version précédente du js-beautify, plus de commentaires: https://github.com/beautify-web/js-beautify/issues/1247
et le lancer "make install". Cela semble fonctionner dans le cas où vous n'avez pas d'autres dépendances qui nécessitent une version supérieure (1.7.0) dans ce cas, vous devez également rétrograder ces packages dans packages.json.
ou
la source
Aucune de ces réponses n'a fonctionné pour moi. Mais a
yarn install
travaillé, puis anpm i
commencé à travailler. Je ne sais pas quel fil fixe, mais une solution rapide et facile!la source
Faites d'abord
alors fais
Après cela, installez les fichiers que vous souhaitez ajouter
la source
Il y avait une erreur similaire avec npm dans un conteneur docker pour webpack. Le problème était dû à l'argument de ligne de commande --user de l'exécution de docker, car l'utilisateur et le groupe donnés là-dedans ont en quelque sorte gâché les droits sur le volume local. J'espère que cela aide quelqu'un :)
la source
J'étais confronté à une erreur similaire mais j'ai essayé d'exécuter la commande create-react-app à plusieurs reprises et finalement elle a été créée, c'était le problème avec ma connexion Internet. Vérifiez votre connection internet
la source
Veuillez essayer ceci
Alors essayez cette commande, cela fonctionnera
la source