2012-08-30 3 views
5

Ich habe node.js v0.8.8 sowohl vom pkg-Installer installiert als auch von der Quelle kompiliert. Trotzdem erhalte ich den folgenden Fehler beim Versuch, npm auszuführen. Jede Hilfe wäre willkommen.node.js unter Mac OS X npm "Fehler: Kein solches Modul"

> $ npm --help 
> 
> /usr/lib/node_modules/npm/lib/utils/config-defs.js:5 , stdio = 
> process.binding("stdio") 
>     ^Error: No such module 
>  at Object.<anonymous> (/usr/lib/node_modules/npm/lib/utils/config-defs.js:5:21) 
>  at Module._compile (module.js:449:26) 
>  at Object.Module._extensions..js (module.js:467:10) 
>  at Module.load (module.js:356:32) 
>  at Function.Module._load (module.js:312:12) 
>  at Module.require (module.js:362:17) 
>  at require (module.js:378:17) 
>  at Object.<anonymous> (/usr/lib/node_modules/npm/lib/utils/ini.js:43:18) 
>  at Module._compile (module.js:449:26) 
>  at Object.Module._extensions..js (module.js:467:10) 
+1

Hehehe, "kein Saugmodul". Korrigiere das nicht. :) –

Antwort

3

Sie verwenden höchstwahrscheinlich eine alte NPM-Version. siehe: npm issue

+3

Danke, ich musste den Git Repo klonen (git: //github.com/isaacs/npm.git), dann musste alles/usr/lib/node_modules/npm und/usr/bin/npm manuell entfernen *) dann rufe "sudo make install") –

+0

Huh ... Ich frage mich, warum Knoten die npm-Binärdatei nicht überschrieb, wenn Sie es von src kompiliert haben ... – xen

9

Ich hatte das gleiche Problem Upgrade von Node.JS 0.4 auf 0.8. Was für mich funktionierte, war folgendes:

Das OSX Node.JS-Paketinstallationsprogramm entfernt fälschlicherweise nicht die alte 0.4 npm-Installation in/usr/bin, was dann mit der neuen Version 0.8 in/usr/local/bin kollidiert. Es überschreibt nur, was schon da ist. Ich nuked die alte durch sie zu löschen, sondern um sicherzustellen, habe ich beschlossen, eine saubere Installation wäre besser:

curl https://npmjs.org/install.sh | sudo clean=yes sh

Es war ein letztes Problem: Nach der Installation, auch wenn ein which npm richtig /usr/local/bin/npm zurückkehrt, bash versuchte weiterhin, aus/usr/bin auszuführen. Dies liegt daran, dass bash unter OSX den Namen der ausführbaren Datei hashed hat. Durch das Hashing werden wiederholte Suchvorgänge in allen Verzeichnissen in Ihrem PATH bei jeder Ausführung gemeinsamer Programme gespeichert. Ein an der Befehlszeile hat dieses Problem behoben.

+1

Kein Glück für mich, von Knoten 0.4 auf 0.10 aktualisiert. – SimplGy