2012-08-30 3 views
5

Ho installato node.js v0.8.8 sia dal programma di installazione pkg sia compilato dall'origine. Tuttavia ottengo il seguente errore quando provo a eseguire npm. Qualsiasi aiuto sarebbe apprezzato.node.js su Mac OS X npm "Errore: nessun modulo"

> $ 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, "nessun modulo di aspirazione". Non correggerlo. :) –

risposta

3

Probabilmente si sta utilizzando in qualche modo una vecchia versione NPM. vedere: npm issue

+3

Grazie, ho dovuto clonare il repository git (git: //github.com/isaacs/npm.git), quindi ho dovuto rimuovere manualmente tutto/usr/lib/node_modules/npm e/usr/bin/npm *) quindi esegui "sudo make install") –

+0

Huh ... Mi chiedo perché il nodo non abbia sovrascritto il binario npm quando lo hai compilato da src ... – xen

9

Ho avuto lo stesso identico problema di aggiornamento da Node.JS 0.4 a 0.8. Quello che ha funzionato per me è stato il seguente:

Il programma di installazione del pacchetto OSX Node.JS non rimuove erroneamente la vecchia installazione di 0,4 npm in/usr/bin, che quindi è in conflitto con la nuova versione 0.8 in/usr/local/bin. Sovrascrive appena qualunque cosa ci sia già. Ho nuked quello vecchio eliminandolo, ma per essere sicuri, ho deciso una installazione pulita sarebbe meglio:

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

C'è stato un ultimo problema: dopo l'installazione, anche se un which npm restituisce correttamente /usr/local/bin/npm, bash ha cercato di eseguire da/usr/bin. Questo perché su OSX, bash ha cancellato il nome dell'eseguibile. L'hashing salva le ricerche ripetute di tutte le directory nel PATH ogni volta che si eseguono programmi comuni. A hash -r alla riga di comando si è preso cura di questo problema.

+1

Non ho fortuna su questo per me, aggiornato dal nodo 0.4 a 0.10. – SimplGy