Ho avuto il mio server in funzione con una versione precedente di node.js, npm e socket.io ma dopo l'aggiornamento ho iniziato a riscontrare problemi con socket.io:Errore: impossibile trovare il modulo './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)
Prima dell'aggiornamento, avevo un collegamento simbolico per socket.io sotto node_modules che puntava alla directory "installata centralmente" con lo stesso nome. Recentemente ho provato a installare socket.io locale per il mio progetto con il comando:
npm install socket.io
che ha posto sotto socket.io node_modules nel mio progetto. All'inizio ho trovato strano che il messaggio di errore dicesse "./lib/socket.io" ma quando ho esaminato il file ho trovato che project/node_modules/socket.io/index.js richiede socket.io in questo modo:
module.exports = require('./lib/socket.io');
Ma non c'è nulla, tranne il trasporto:
...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
Dovrebbe esserci un'altra directory socket.io o un file socket.io.js sotto lib? Perché index.js richiederebbe un file interno che sembra mancare?
Versioni:
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 /' deve contenere diversi file JS al suo interno, incluso 'socket.io.js'. O almeno il mio lo fa (nodo 0.6.5, npm 1.1.0, socket.io 0.9.2). –
@Felix Loether - Grazie per la conferma. Ora ho bisogno di capire perché non ho ottenuto tutti i file che dovrei avere. – ghbarratt