我刚刚安装了node.js + microsoft visual以便能够安装websocket,它安装得很好:
C:\Users\Administrator>npm install websocket
npm http GET https://registry.npmjs.org/websocket
npm http 304 https://registry.npmjs.org/websocket
> websocket@1.0.8 install C:\Users\Administrator\node_modules\websocket
> node install.js
[websocket v1.0.8] Attempting to compile native extensions.
[websocket v1.0.8] Native extension compilation successful!
websocket@1.0.8 node_modules\websocket
C:\Users\Administrator>
现在我正在尝试使用此脚本运行脚本:
var WebSocketServer = require('websocket').Server;
我得到了这个:
C:\Users\Administrator>node C:\server\src\main.js
module.js:340
throw err;
^
Error: Cannot find module 'websocket'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (C:\server\src\main.js:2:23)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
C:\Users\Administrator>
任何帮助都会受到赞赏,我已经尝试过多次安装,我尝试全局安装(-g tag)。
答案 0 :(得分:7)
请注意,如果您全局安装了NPM模块(使用-g
选项)并且没有告诉node
使用全局模块路径来解决需求,则可能会出现此错误。
在Linux上我全局安装了websocket
模块:
$ sudo npm install -g websocket
npm http GET https://registry.npmjs.org/websocket
npm http 200 https://registry.npmjs.org/websocket
npm http GET https://registry.npmjs.org/websocket/-/websocket-1.0.8.tgz
npm http 200 https://registry.npmjs.org/websocket/-/websocket-1.0.8.tgz
> websocket@1.0.8 install /usr/local/lib/node_modules/websocket
> node install.js
[websocket v1.0.8] Attempting to compile native extensions.
[websocket v1.0.8] Native extension compilation successful!
websocket@1.0.8 /usr/local/lib/node_modules/websocket
在此之后,我必须导出NODE_PATH
环境变量以指向上述输出中提到的路径:
export NODE_PATH=/usr/local/lib/node_modules
之后:
$ node
> require('websocket')
{ server:
{ [Function: WebSocketServer]
super_: { [Function: EventEmitter] listenerCount: [Function] } },
...
希望这有助于搜索此错误消息的人。
答案 1 :(得分:4)
我在这里遇到了同样的错误..我按照以下步骤操作:
以管理员身份执行cmd(右键单击cmd图标 - >以管理员身份运行) 然后输入cmd:
c:\Node Instalation Dir\> npm install -g express
c:\Node Instalation Dir\> npm install websocket --force
现在你可以运行你的脚本了:
c:\Node Instalation Dir\> node script.js
我在测试服务器中做过..尝试不在生产服务器中使用'--force'吗?
答案 2 :(得分:1)
npm在./node_modules/
中安装模块。所以你应该安装websocket IN C:\server\src\
。