ghb*_*att 7 ubuntu-server node.js npm socket.io
我让我的服务器使用早期版本的node.js,npm和socket.io但是在更新之后我开始遇到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)
Run Code Online (Sandbox Code Playgroud)
在升级之前,我在node_modules下有一个socket.io的符号链接,指向具有相同名称的"集中安装"目录.最近我尝试通过发出命令在我的项目中安装socket.io local:
npm install socket.io
Run Code Online (Sandbox Code Playgroud)
它将socket.io放在我的项目中的node_modules下.我一开始觉得奇怪的是错误信息是"./lib/socket.io",但当我查看它时,我发现project/node_modules/socket.io/index.js需要socket.io,如下所示:
module.exports = require('./lib/socket.io');
Run Code Online (Sandbox Code Playgroud)
但除了交通之外什么都没有:
...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
Run Code Online (Sandbox Code Playgroud)
在lib下是否应该有另一个socket.io目录或socket.io.js文件?为什么index.js需要一个似乎缺少的内部文件?
版本:
node -v
v0.7.7-pre
npm -v
1.1.12
socket.io@0.9.2
Distributor ID: Ubuntu
Description: Ubuntu 10.10
Release: 10.10
Codename: maverick
Run Code Online (Sandbox Code Playgroud)
ghb*_*att 17
我讨厌回答我自己的问题,但我确实解决了问题并且没有其他答案,所以我要添加它以防万一它可以帮助其他人.
有了Felix Loether的评论(我+ 1),我相当肯定我没有得到我应该拥有的所有文件npm install socket.io.我尝试做一个apt-get update/ upgrade,以为我可能需要更新tar或其他东西,但结果仍然相同.
我在安装输出中注意到304响应,并且在那时想知道是否存在某种我应该尝试清除的npm缓存.我发现我可以使用以下命令清除npm缓存:npm cache clean.清理缓存最终让我超越了无错误直到运行时问题.
然后我开始收到一条错误消息:make: node-waf: Command not found这导致我重新安装节点.
毕竟,它奏效了!
| 归档时间: |
|
| 查看次数: |
13346 次 |
| 最近记录: |