Ich versuche, ein soeben veröffentlichtes npm-Modul global zu installieren. Jedes Mal, wenn ich versuche, entweder von npm oder vom Ordner aus zu installieren, wird dieser Fehler angezeigt.
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
Ich benutze sudo und habe alles im Paket dreifach überprüft, alles sollte funktionieren. Ich suchte ein bisschen herum und sah ein paar Similer-Fälle, von denen keiner gelöst wurde. Folgendes habe ich versucht.
- Upgrade npm (
sudo npm install -g npm
) - Leere den globalen npm-Cache (
sudo npm cache clear
) - Leeren Sie den Benutzer-npm-Cache (
npm cache clear
)
Ich habe festgestellt, dass der Fehler mit der Datei zu tun hat, die ich mit dem Pfad verknüpfe, insbesondere als npm versuchte, einen chmod auszuführen. Das sollte kein Problem sein, meine lib/cli.js
hat normale Berechtigungen und npm hat Superuser-Berechtigungen während dieser Installation.
Nachdem ich die npm-Dokumente durchgesehen hatte, fand ich eine Option, die npm daran hinderte, die bin-Links zu erstellen (--no-bin-links
) zu Als ich die Installation damit versuchte, funktionierte sie einwandfrei.
Also, was ist der Deal? Ist dies ein seltsamer Randfall , der noch keine Lösung hat?
Bearbeiten: Als Referenz ist hier das Modul, das ich hochgeladen habe
--no-bin-links
stoppt npm nur daran, Dateien imbin
Hash von package.json mit dem Pfad bei der globalen Installation zu verknüpfen .Antworten:
Ok, es sieht so aus, als würde NPM Ihre
.gitignore
als Basis für die.npmignore
Datei verwenden und daher ignorieren/lib
. Wenn Sie eine leere.npmignore
Datei in das Stammverzeichnis Ihrer Anwendung einfügen, sollte alles funktionieren.[Bearbeiten] - Weitere Informationen zu diesem Verhalten finden Sie hier: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
quelle
Ich bin auf ein ähnliches Problem gestoßen,
Ich habe es gelöst.
quelle
npm cache verify
und es hat funktioniert. Danke für den Hinweis.npm install --cache /tmp/empty-cache
einen temporären Cache verwenden, anstatt den eigentlichen zu löschen.Dieses Problem trat für mich auf dem Mac auf, als ich versuchte zu laufen
npm install -g bower
. Es gab mir eine Reihe von Fehlern, weil ich Dinge wie anmutige Fs nicht finden konnte. Ich bin mir nicht sicher, wie ich npm ursprünglich installiert habe, aber es sieht so aus, als wäre der Knoten mit Homebrew heruntergekommen. Ich rannte zuerstDies entfernte beide
node
undnpm
von meinem Weg. Von dort habe ich es einfach neu installiertWenn es fertig Ich hatte
node
undnpm
auf meinem Weg und ich war in der Lage zu laufenDiese installierte dann die Laube erfolgreich.
Das Aktualisieren der Brühformeln und das Aktualisieren der Installationen schien für mich nicht zu funktionieren, ich bin mir nicht sicher warum. Das Entfernen des
.npm
Ordners hatte für andere Leute funktioniert, und ich hatte es ohne Erfolg versucht. Ich habe es diesmal nur für den Fall getan. Beachten Sie auch, dass keines der folgenden Probleme das Problem für mich gelöst hat, obwohl es für andere der Fall war:quelle
Ich habe diesen Fehler bei der Installation von npm erhalten und das Hinzufügen von .npmignore hat ihn nicht behoben.
Ich habe versucht, in den genannten Ordner zu wechseln, der jedoch nicht vorhanden war. Der Fehler wurde behoben, als ich den Ordner npm in Roaming erstellt habe .
Dies ist unter Windows 8.1
quelle
Ich hatte das gleiche Problem und fand gerade eine Handhabung, die hier nicht erwähnt wurde. Obwohl ich zur Community beitragen würde:
npm install -g myapp
kopierte dasbin
Verzeichnis nicht. Ich fand das so, weil ich es nichtfiles
in meine aufgenommen habepackage.json
quelle
files
Schlüssel in meinempackage.json
mit einigen Einträgen wieindex.js
und bekamLICENSE
, aber nicht denbin
Ordner. Es funktioniert also, wenn überhaupt keinfiles
Schlüssel vorhanden ist oder wenn einfiles
Schlüssel UND derbin
Ordner vorhanden sind.Bei
npm install
einer lokalen Installation wurde ein ähnlicher Fehler angezeigt:Ich bin nicht sicher, was den Fehler verursacht hat, aber ich hatte kürzlich einige neue Knotenmodule lokal installiert, den Knoten mit Homebrew aktualisiert und 'npm update -g' ausgeführt.
Die einzige Möglichkeit, das Problem zu beheben, bestand darin, das lokale Verzeichnis node_modules vollständig zu löschen und
npm install
erneut auszuführen :quelle
Ich habe speziell ein ähnliches Problem: ERR! enoent ENOENT: keine solche Datei oder kein solches Verzeichnis, chmod 'Knotenmodule / npm / Knotenmodule / Anfrage / Knotenmodule / http-Signatur / Knotenmodule / sshpk / bin / sshpk-conv Ich habe alle oben genannten Lösungen ausprobiert, aber kein Glück. Ich habe eine Vagrant Box verwendet und das Projekt befand sich in einem freigegebenen Ordner. Die Probleme scheinen nur da zu sein, wenn ich das Projekt in einen anderen nicht freigegebenen Ordner (mit Host) verschiebe, voila! Problem gelöst. Nur für den Fall, dass eine andere Person auch Landstreicher verwendet
quelle
Ich habe eine ähnliche Fehlermeldung erhalten, als ich versucht habe,
npm install
eine Reihe von Abhängigkeiten zu ermitteln. Es stellt sich heraus, dass einige von ihnen nicht unter Debian / Ubuntu installiert werden können, da sie davon ausgehen/usr/bin/node
, dass sie der ausführbare Knoten sind. Um dies zu beheben, müssen Sie dies tunoder noch besser,
Für weitere Informationen: https://stackoverflow.com/a/21171188/7581
quelle
Ich habe nach dem Upgrade auf npm ein ähnliches Verhalten festgestellt
6.1.0
. Es schien einmal zu funktionieren, aber dann kam ich mit diesem Fehler in einen Zustand, als ich versuchte, ein Paket zu installieren, das durch den Pfad im Dateisystem angegeben wurde:Die folgenden Dinge haben das Problem nicht behoben :
rm -rf node_modules
npm cache clean
(gabnpm ERR! As of npm@5, the npm cache self-heals
....use 'npm cache verify' instead.
)npm cache verify
rm -rf ~/.npm
Wie ich das Problem behoben habe :
rm package-lock.json
quelle
Ich denke, Ihr kompiliertes Kaffeeskript fehlt im veröffentlichten npm-Paket. Versuchen Sie, einen Vorveröffentlichungsbefehl zu schreiben .
quelle
takeapeek/lib/cmd.js
es nicht existiert. Auch wenn der lib-Ordner beim Veröffentlichen möglicherweise "dort" ist, wird er bei der Installation über npm nicht "dort" sein, es sei denn, er ist Teil des Repositorys oder Sie verwenden die Vorveröffentlichung, um ihn zu erstellen.In meinem Fall (Mehrfachcode ENOENT errno 34) war das Problem mit dem
~/.npm/
Verzeichniszugriff. Darin befanden sich einige Unterverzeichnisse mitroot:root
Rechten, die Probleme verursachten, während ich Befehle als normaler Benutzer (ohnesudo
) ausführte . Daher habe ich den Besitz aller Unterverzeichnisse und Dateien in~/.npm/
dir in meinen lokalen Benutzer und meine lokale Gruppe geändert . Das hat den Trick auf meinem Ubuntu gemacht (auf dem Mac sollte es auch funktionieren).Sie sollten Ihren Benutzernamen kennen, oder? Wenn nein, führen Sie Folgendes aus
$ whoami
und ersetzen Sie es auch durch Ihren Gruppennamen:BEARBEITEN:
Testfall :
Von meinem lokalen Konto aus habe
/home/johnb
ich npm global einen Generator installiertyeoman
, wie folgt:Problem Natur :
Die obige Aktion hat dazu geführt, dass einige Abhängigkeiten im Inneren installiert wurden
~/.npm/
dir wurden undroot:root
Eigentümer sind (wegensudo ...
). Offensichtlich wird npm nicht als lokaler Benutzer ausgeführt (oder ändert später den Besitz von Unterverzeichnissen für Abhängigkeiten), wenn Abhängigkeiten abgerufen und in ein Unterverzeichnis für lokale Benutzer geschrieben werden~/.npm/
. Solange npm so unachtsam gegenüber grundlegenden Sicherheitsproblemen des Unix-Dateisystems ist, würde das Problem erneut auftreten.Lösung :
Überprüfen Sie fortlaufend, ob
~/.npm/
Unterverzeichnisse mit anderen Eigentümern (und / oder Berechtigungen) als Ihrem lokalen Benutzerkonto enthalten sind, insbesondere wenn Sie etwas mit installieren oder aktualisierensodo
(root) . Wenn ja, ändern Sie den Besitz innerhalb~/.npm/
eines lokalen Benutzers rekursiv.Bitten Sie die
npm, bower, grunt, ...
Community, dieses Problem so zu beheben, wie ich es oben beschrieben habe.quelle
Ich habe diesen Fehler beim Versuch, ein Grunz-Plugin zu installieren, erhalten. Ich fand, dass ich eine veraltete Version von npm hatte und der Fehler verschwand, nachdem npm auf die neueste Version aktualisiert wurde
quelle
Ich habe alle Sachen ausprobiert, die ich im Internet gefunden habe (
npm cache clear
undrm -rf ~/.npm
), aber nichts scheint zu funktionieren. Was das Problem löste, war das Aktualisieren von Node (und npm) auf die neueste Version. Versuch das.quelle
In Windows hatte ich einen ähnlichen Fehler. Suchen, App-Daten einfügen und nach der Zeichenfolge suchen
npm
.Ich habe die Zeichenfolge
'npm'
(einschließlich Anführungszeichen)'npm.cmd'
inatlasboard\lib\package-dependency-manager.js
und ersetztatlasboard\lib\cli\commands.js
. Das hat das Problem behoben.quelle
Der gleiche Fehler während der globalen Installation (
npm install -g mymodule
) für ein Paket mit einem nicht vorhandenen Skript.In package.json:
Aber das
./bin/module
gab es nicht, wie es genannt wurdemodulejs
.quelle
quelle
Sie können diesen Fehler erhalten, wenn Ihre node.js ebenfalls irgendwie beschädigt ist. Ich habe diesen Fehler behoben, indem ich node.js vollständig deinstalliert / neu gestartet / installiert habe, und er hat diesen Fehler zusammen mit den drei anderen mysteriösen Fehlern behoben, die ausgelöst werden.
quelle
Seien Sie vorsichtig mit ungültigen Werten für die Schlüssel "Verzeichnisse" und "Dateien" in package.json
Wenn Sie mit einer neuen Anwendung beginnen und vollständig leer starten möchten, müssen Sie entweder in einem vollständig leeren Ordner starten oder eine gültige Datei package.json enthalten.
Wenn Sie nicht zuerst eine package.json-Datei erstellen möchten, geben Sie einfach Folgendes ein:
npm i some_package
Paket mit dem Namen "some_package" sollte korrekt in einem neuen Unterordner "node_modules" installiert sein.
Wenn Sie zuerst eine package.json-Datei erstellen, geben Sie Folgendes ein:
npm init
Behalten Sie alle (indem Sie einfach auf ENTER klicken). Ende sollten Sie eine gültige Datei erhalten.Es sollte so aussehen:
Beachten Sie, dass die folgenden Schlüssel fehlen: " Verzeichnisse ", " Repository " und " Dateien ". Wenn Sie falsche Werte für " Verzeichnisse " und / oder " Dateien " verwenden, können Sie das Paket anscheinend nicht installieren. Das Weglassen dieser Schlüssel löste das Problem für mich.
Beachten Sie auch die Taste " main ". Dieser ist vorhanden, enthält jedoch einen ungültigen Wert. (Noch) existiert keine Datei "index.js". Sie können es sicher entfernen.
npm i some_package
Geben Sie nun Folgendes ein : und das Paket mit dem Namen "some_package" sollte korrekt in einem neuen Unterordner "node_modules" installiert sein.quelle
Versuchte fast alles dann endlich das:
Entfernen Sie einfach node_modules und führen Sie es
'npm install'
erneut ausquelle
Ich hatte ein ähnliches Problem mit einer anderen Ursache: Der
yo node
Generator wurde"files": ["lib/"]
zu meinem hinzugefügt ,package.json
und da sich mein Generatorcli.js
außerhalb deslib/
Verzeichnisses befand, wurde er beim Veröffentlichen auf npm übersprungen.(Yeoman-Problem unter https://github.com/yeoman/generator-node/issues/63 sollte bald behoben sein.)
quelle
Ich habe die Fehlermeldung "Fehler: ENOENT, stat 'C: \ Benutzer \ Benutzername \ AppData \ Roaming \ npm' erhalten. Es gab jedoch kein solches Verzeichnis. Das Verzeichnis wurde erstellt und die npm-Installation begann zu funktionieren
quelle
Ich habe kürzlich ein Upgrade auf Knoten 4.2.1 auf einem Windows 7 x64-Computer durchgeführt. Beim Laufen
Ich habe einen ähnlichen Fehler erhalten:
Ich dachte, es hängt mit dem AppData-Pfad zusammen und spielte damit herum
und
So ändern Sie die Felder Präfix, Cache und TMP, haben jedoch denselben Fehler mit den neuen Pfaden erhalten:
Alle Befehle wurden als Administrator ausgeführt, daher hatte ich die vollen Berechtigungen.
Dann dachte ich, dass es einige Probleme mit vorhandenen Dateien gibt, also lief ich:
Habe aber den gleichen Fehler. Es lagen jedoch noch einige temporäre Dateien herum. Das manuelle Entfernen aller temporären Daten mit cygwin hat das Problem für mich behoben:
Wenn Sie nur Windows Cmd haben, können Sie so etwas wie verwenden
um alle Unterverzeichnisse zu entfernen (obwohl dies notorisch problematisch ist, wenn Sie tief verschachtelte Knotenabhängigkeiten haben)
Vielleicht gibt es also einige Probleme beim Upgrade von npm und beim Herumhängen von Versionen von Bower oder anderen Paketen. In meinem Fall schien das das Problem zu sein
quelle
Während der Installation von ionic habe ich den folgenden Fehler erhalten
Auf
ansi
diesem Pfad wurde kein Ordner aufgerufen . Ich habe es dort erstellt und es richtig installiert.quelle
Wenn Sie mit diesem Fehler versucht haben, die Installation in Ihrem Projektverzeichnis durchzuführen, können Sie Folgendes versuchen:
dann können Sie versuchen, "Installation zu machen"
Wenn Sie das "npm ERR! Enoent ENOENT: keine solche Datei oder kein solches Verzeichnis haben, chmod '... / djam-backend / node_modules / js-beautify / js / bin / css-beautify.js'", können Sie versuchen, es zu installieren Einige frühere Versionen von js-beautify, weitere Kommentare: https://github.com/beautify-web/js-beautify/issues/1247
und der Lauf "make install". Es scheint zu funktionieren, wenn Sie keine anderen Abhängigkeiten haben, für die eine höhere Version (1.7.0) erforderlich ist. In diesem Fall müssen Sie diese Pakete auch in der Datei packages.json herunterstufen.
oder
quelle
Keines der oben genannten hat bei mir funktioniert. Aber
yarn install
gearbeitet, dannnpm i
angefangen zu arbeiten. Nicht sicher, welches Garn fixiert ist, aber schnelle und einfache Lösung!quelle
Zuerst tun
dann mach
Installieren Sie anschließend alle Dateien, die Sie hinzufügen möchten
quelle
Hatte einen ähnlichen Fehler mit npm in einem Docker-Container für Webpack. Das Problem wurde durch das Befehlszeilenargument --user von Docker Run verursacht, da der angegebene Benutzer und die angegebene Gruppe die Rechte auf dem lokalen Volume irgendwie durcheinander gebracht haben. Hoffe das hilft jemandem :)
quelle
Ich hatte einen ähnlichen Fehler, aber ich habe viele Male versucht, den Befehl create-react-app auszuführen, und schließlich wurde er erstellt. Dies war das Problem mit meiner Internetverbindung. Prüfe deine Internetverbindung
quelle
Bitte versuchen Sie dies
Versuchen Sie dann diesen Befehl. Es wird funktionieren
quelle