2012-03-14 26 views
12
 
[[email protected] websocket_start]# npm ls -g installed 
npm WARN ls doesn't take positional args. Try the 'search' command 
npm WARN [email protected] package.json: bugs['web'] should probably be bugs['url'] 
/usr/lib 
├─┬ [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── fast-[email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
└── [email protected] 
[[email protected] websocket_start]# npm ls installed 
npm WARN ls doesn't take positional args. Try the 'search' command 
/home/qonco/workspace/JS/websocket_start 
(empty) 
[[email protected] websocket_start]# node 
> require("websocket-server"); 
Error: Cannot find module 'websocket-server' 
    at Function._resolveFilename (module.js:332:11) 
    at Function._load (module.js:279:25) 
    at Module.require (module.js:354:17) 
    at require (module.js:370:17) 
    at repl:1:1 
    at REPLServer.eval (repl.js:80:21) 
    at repl.js:190:20 
    at REPLServer.eval (repl.js:87:5) 
    at Interface. (repl.js:182:12) 
    at Interface.emit (events.js:67:17) 
> 

Respuesta

14

¿Ha instalado el módulo con la opción -g? Creo que no todos los módulos deben instalarse globalmente, en su lugar, intente instalarlos localmente para el proyecto que está creando (instalación npm) y verifique si el error persiste.

+0

Gracias! Lo instalo localmente y funciona. ¿Por qué es diferente entre localmente y globalmente? ¿No es ese nodo encontrará módulos tanto global como localmente? – Thetsu

+7

Si desea simplemente requerir ('algo'); es mejor instalarlo localmente; de ​​lo contrario, debe requerir ('{PREFIX} algo'), donde el prefijo es la ruta hacia donde lo ha instalado globalmente. Echa un vistazo a esta [publicación de blog] (http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/), y, como se dice, generalmente el La regla general es instalar cosas localmente si va a utilizarlas en su aplicación, y globalmente si las va a usar desde la línea de comando. – Javo

+0

Si está ejecutando un script Node.js, p. '~/bin/my-awesome-script.js', Node.js buscará el módulo en la carpeta de ese script, no la carpeta actual desde la que ejecuta el script. Entonces, en este caso, asegúrese de ejecutar 'npm install ...' desde '~/bin'. – avernet

54

de haber instalado la marcha global de módulo para su aplicación y probar este vincular lo global a su carpeta de la aplicación

sudo npm link <MODULeNAME> 
+3

Esta debería ser la respuesta principal, es una forma mucho más concisa/fácil de instalación local, y le permite tener el módulo instalado una vez en todo el mundo. – Bloodyaugust

+1

Estaba haciendo el enlace 'sudo npm' solo y no pude encontrar el módulo, incluso si se declaró correctamente en el archivo' package.json'. Agregando el argumento '' solucionado. –

+2

+1. Esto funcionó para mí y de hecho fue una solución más limpia. – asiby

Cuestiones relacionadas