2014-02-27 1 views
5

Wenn ich versuche, etwas mit npm zu installieren, schlägt es ziemlich oft fehl (viel häufiger, dass apt-get zum Beispiel), und es wird angezeigt "siehe Protokolldatei für Details" oder "make in the directory failed". Aber wenn ich versuche, das Verzeichnis zu überprüfen, wird es nicht gefunden. Löscht NPM einfach alles, was gerade heruntergeladen wurde, wenn etwas während der Installation fehlschlägt? Warum sollte ich das Verzeichnis überprüfen, wenn es gelöscht wurde?Löscht npm das heruntergeladene Modul, wenn die Installation fehlschlägt?

+0

i überraschen bin sehr gefunden, dass ein so weit verbreitetes Werkzeug so oft scheitern. Und über ähnliche Werkzeuge wie apt-get, yum, maven, brew sind viel stabiler. Vielleicht ist Komponist ähnlich beschissen. – gontard

+0

das Problem ist in der Regel konstant V8 und Node.js API-Änderung, die Pakete leicht veraltet macht, und Autoren nicht darauf achten, aktualisieren oder bieten korrekte Versionsnummer Mustererkennung in ihrer package.json. – exebook

Antwort

2

npm hält heruntergeladene Pakete als Tarballs in einem Cache-Ordner.

sehen: https://www.npmjs.org/doc/cli/npm-cache.html

Wenn Sie npm install und etwas schief geht ausführen, wird es versuchen, die Pakete von der aktuellen Position rückgängig zu machen und zu entfernen, aber es sollte die im Cache gespeicherten tarballs allein lassen. Manchmal kann der Cache ein fehlerhaftes Paket-Tarball haben.

Sie können erzwingen npm zu installieren, ohne den Cache wie diese verwenden npm install --force. Oder, wenn Sie wirklich müssen, können Sie den ganzen Cache wie diesen npm cache clean löschen.

Denken Sie daran: npm installiert Pakete in den aktuellen Ordner, oder wo auch immer Ihr package.json kann