Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 尝试全局安装socket.io时出错_Node.js_Socket.io_Npm - Fatal编程技术网

Node.js 尝试全局安装socket.io时出错

Node.js 尝试全局安装socket.io时出错,node.js,socket.io,npm,Node.js,Socket.io,Npm,我不熟悉node、npm、socket.io。找到了很多非常有用的指南,但是我遇到了一些错误,我不明白原因,希望你能帮我解决 npm install socket.io -g 返回 npm http GET https://registry.npmjs.org/socket.io npm http 304 https://registry.npmjs.org/socket.io npm ERR! error installing socket.io@0.9.4 npm ERR! error r

我不熟悉node、npm、socket.io。找到了很多非常有用的指南,但是我遇到了一些错误,我不明白原因,希望你能帮我解决

npm install socket.io -g
返回

npm http GET https://registry.npmjs.org/socket.io
npm http 304 https://registry.npmjs.org/socket.io
npm ERR! error installing socket.io@0.9.4
npm ERR! error rolling back socket.io@0.9.4 Error: EACCES, unlink   '/usr/local/lib/node_modules/socket.io/.npmignore'
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/socket.io/.npmignore'
npm ERR! Report this *entire* log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
npm ERR! 
npm ERR! System Darwin 10.8.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "socket.io" "-g"
npm ERR! cwd /Users/Kinglee
npm ERR! node -v v0.6.14
npm ERR! npm -v 1.1.0-beta-4
npm ERR! path /usr/local/lib/node_modules/socket.io/.npmignore
npm ERR! code EACCES
npm ERR! message EACCES, unlink '/usr/local/lib/node_modules/socket.io/.npmignore'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/Kinglee/npm-debug.log
npmhttpgethttps://registry.npmjs.org/socket.io
npm http 304https://registry.npmjs.org/socket.io
npm错误!安装套接字时出错。io@0.9.4
npm错误!回滚套接字时出错。io@0.9.4错误:EACCES,取消“/usr/local/lib/node_modules/socket.io/.npmignore”的链接
npm错误!错误:EACCES,取消“/usr/local/lib/node_modules/socket.io/.npmignore”的链接
npm错误!在以下位置报告此*整个*日志:
npm错误!
npm错误!或通过电子邮件发送至:
npm错误!
npm错误!
npm错误!达尔文10.8.0系统
npm错误!命令“node”“/usr/local/bin/npm”“install”“socket.io”“-g”
npm错误!cwd/Users/Kinglee
npm错误!节点-v v0.6.14
npm错误!npm-v1.1.0-beta-4
npm错误!path/usr/local/lib/node_modules/socket.io/.npmignore
npm错误!代码EACCES
npm错误!消息EACCES,取消链接“/usr/local/lib/node_modules/socket.io/.npmignore”
npm错误!
npm错误!其他日志记录详细信息可在以下位置找到:
npm错误/Users/Kinglee/npm-debug.log
然而,当我安装socket.io时,没有出现错误,一切都很好

抱歉,忘记在此处添加此信息

实际上,我尝试了
sudo npm install socket.io
,安装时没有出现错误,但当我尝试
cd~/node\u模块时,我没有看到socket.io,这是因为当我尝试执行
require('socket.io')
时出现了
“socket.io未找到”错误()


这里有点困惑:/

最重要的部分是:

EACCES, unlink   '/usr/local/lib/node_modules/socket.io/.npmignore'
这意味着您没有删除此文件的权限

我假设这意味着您以标准用户帐户的形式运行该命令,该帐户将没有写入
/usr/
的权限

在命令前添加
sudo
,以使用管理员权限重新运行命令:

sudo npm install socket.io -g
您的本地配置在
节点的默认模块加载位置中可能没有
/usr/local/lib/node_modules/
。模块加载路径通过
NODE\u path
环境变量(在启动
NODE
之前)或
require.paths
变量(一旦
NODE
运行)进行控制。因为我更喜欢将本地配置与程序分开,所以我更喜欢将环境变量设置为修改路径,尽管其他机制对于即使环境发生变化也必须保持运行的长期应用程序可能有用。(这绝对是一种高级用法。)

要更改单个实例的
NODE\u PATH
变量,
sh
及其派生变量只需在命令之前添加
NODE\u PATH=/PATH
。例如,更改:

node ./foo.js

如果您有多个目录,请使用标准的
-分隔目录,就像使用
路径时一样:

NODE_PATH=/usr/local/lib/node_modules:/home/sarnold/node_modules ./foo.js
要使其持久化,请使用shell的
导出
内置项将
节点路径
变量的值导出到所有子级,并将修改放置在shell的启动文件中,例如
~/.bashrc

export NODE_PATH=/usr/local/lib/node_modules
这将在所有新壳中自动生效。如果您不想重新启动当前运行的Shell,您可以
source
将此文件放入其中:

source ~/.bashrc

把这个留在这里,因为它帮助我解决了一个类似的问题:

我有一些很好的答案。
希望能有所帮助。

哦,是的,我忘了补充一句,我实际上试过“sudo npm install socket.io-g”,而且安装得很好。但是当我cd到~/node_模块时,我看不到socket.io。这会导致我在下面的教程()中尝试执行“node main.js”时出现错误“socket.io not found”。在启动
node
之前,您可能需要将
/usr/local/lib/node\u modules/
添加到
node\u PATH
环境变量中,或者修改脚本中的
require.PATH
。我更喜欢环境变量,因为它不会将系统环境知识硬编码到程序中。尝试运行:
NODE\u PATH=/usr/local/lib/NODE\u modules NODE foo.js
——也就是说,在
NODE
命令之前,在
NODE\u PATH
赋值前面加上前缀。如果可行,则将
export NODE_PATH=/usr/local/lib/NODE_模块
添加到
~/.bashrc
文件中。(并报告回来;我会整理答案和评论…)好的,这就是我所做的。。。npm rm socket.io,node main.js//return找不到正确的模块'socket.io',sudo npm install socket.io-g//一切正常,…检查socket.io是否在~/node_modules中..//不,它不是,NODE_PATH=/usr/local/lib/NODE_modules NODE main.js//Ooo,它可以工作。。添加了.bash_概要文件的路径,节点main.js//sweet它可以工作。非常感谢。Argh我在控制台中收到“io未定义错误”,在这一行“socket=io.connect”“”上,我怀疑url对我的设置是错误的。。隐马尔可夫模型
source ~/.bashrc