Tenía mi servidor trabajando con una versión anterior de node.js, npm y socket.io, pero después de actualizar empecé a tener problemas con socket.io:Error: No se puede encontrar el módulo './lib/socket.io'
$ node server.js
node.js:237
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module './lib/socket.io'
at Function._resolveFilename (module.js:333:15)
at Function._load (module.js:280:25)
at Module.require (module.js:357:17)
at require (module.js:373:17)
at Object.<anonymous> (/usr/local/lib/node_modules/socket.io/index.js:8:18)
at Module._compile (module.js:444:26)
at Object..js (module.js:462:10)
at Module.load (module.js:351:32)
at Function._load (module.js:309:12)
at Module.require (module.js:357:17)
Antes de realizar la actualización, tenía un enlace simbólico para socket.io en node_modules que apuntaba al directorio "centrally installed" con el mismo nombre. Recientemente he intentado instalar socket.io local para mi proyecto mediante el comando:
npm install socket.io
que colocó bajo socket.io node_modules en mi proyecto. Al principio me pareció extraño que el mensaje de error dijera "./lib/socket.io", pero cuando lo investigué encontré que el proyecto/node_modules/socket.io/index.js requiere socket.io así:
module.exports = require('./lib/socket.io');
Pero no hay nada allí excepto el transporte:
...project/node_modules/socket.io/lib
$ ll
total 24
drwxrwxr-x 3 ghbarratt dev 4096 Mar 26 14:38 .
drwxrwxr-x 5 ghbarratt dev 4096 Mar 26 15:03 ..
-rw-rw-r-- 1 ghbarratt dev 10777 Mar 6 16:37 transport.js
drwxrwxr-x 3 ghbarratt dev 4096 Mar 26 14:38 transports
¿Debería haber otro directorio o un archivo socket.io socket.io.js en lib? ¿Por qué index.js necesitaría un archivo interno que parece estar perdido?
Versiones:
node -v
v0.7.7-pre
npm -v
1.1.12
[email protected]
Distributor ID: Ubuntu
Description: Ubuntu 10.10
Release: 10.10
Codename: maverick
'node_modules/socket.io/lib /' debe tener varios archivos JS dentro, incluyendo 'socket.io.js'. O al menos lo hace el mío (nodo 0.6.5, npm 1.1.0, socket.io 0.9.2). –
@Felix Loether - Gracias por la confirmación. Ahora necesito descubrir por qué no obtuve todos los archivos que debería tener. – ghbarratt