我讓我的服務器使用早期版本的node.js,npm和socket.io,但更新後我開始接受socket.io的問題:錯誤:無法找到模塊'./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)
在升級之前,我在node_modules下有一個socket.io的符號鏈接,指向具有相同名稱的「集中安裝」目錄。最近,我試圖通過發出命令安裝socket.io地方到我的項目:
npm install socket.io
它放在我的項目下node_modules socket.io。起初我發現這個錯誤消息是說「./lib/socket.io」,但是當我看到它時,我發現project/node_modules/socket.io/index.js需要socket.io,像這樣:
module.exports = require('./lib/socket.io');
但裏面空空如也,除了運輸:
...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
如果有另一個socket.io目錄或lib下一個socket.io.js文件?爲什麼index.js需要一個似乎缺失的內部文件?
版本:
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 /'裏面應該有幾個JS文件,包括'socket.io.js'。或者至少是我的(節點0.6.5,npm 1.1.0,socket.io 0.9.2)。 – 2012-03-26 20:09:44
@ Felix Loether - 感謝您的確認。現在我需要弄清楚爲什麼我沒有得到我應該擁有的所有文件。 – ghbarratt 2012-03-26 20:25:36