2012-08-30 11 views
5

He instalado node.js v0.8.8 desde el instalador pkg y compilado desde el origen. Sin embargo, recibo el siguiente error al intentar ejecutar npm. Cualquier ayuda sería apreciada.node.js en Mac OS X npm "Error: No existe dicho módulo"

> $ 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, "no suck module". No corrija eso. :) –

Respuesta

3

Es muy probable que esté utilizando una versión anterior de NPM de alguna manera. ver: npm issue

+3

Gracias, tuve que clonar el git repo (git: //github.com/isaacs/npm.git), luego tuve que eliminar manualmente todo/usr/lib/node_modules/npm, y/usr/bin/npm *) luego ejecuta "sudo make install") –

+0

Huh ... Me pregunto por qué el nodo no sobrescribió el binario npm cuando lo compiló desde src ... – xen

9

Tuve exactamente el mismo problema de actualización de Node.JS 0.4 a 0.8. Lo que funcionó para mí fue el siguiente:

El instalador del paquete OSX Node.JS erróneamente no elimina la antigua instalación de 0.4 npm en/usr/bin, que luego entra en conflicto con la nueva 0.8 en/usr/local/bin. Simplemente sobrescribe lo que ya está allí. Yo nuked la antigua eliminándolo, pero para asegurarse, decidí una instalación limpia sería mejor:

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

Hubo un último problema: después de la instalación, a pesar de que un which npm devuelve correctamente /usr/local/bin/npm, bash siguió intentando ejecutar desde/usr/bin. Esto se debe a que en OSX, bash ha procesado el nombre del ejecutable. El hash guarda las búsquedas repetidas de todos los directorios en su PATH cada vez que ejecuta programas comunes. Un hash -r en la línea de comando se encargó de este problema.

+1

No tuve suerte en esto para mí, actualizado del nodo 0.4 a 0.10. – SimplGy