NPM无法全局安装browserify

我无法全局安装Browserify(或其他)。 我可以在没有问题的情况下安装非全局的东西。

背景:我正在代理之后的公司networking上运行CentOS 6.6。 我使用“yum”作为root来安装Node.js。

$ sudo yum -y install nodejs 

和npm(由于某种原因没有安装nodejs):

 $ sudo yum -y install nodejs npm 

这将Node.js和NPM安装到目录中:

 $ which node /usr/bin/node $ which npm /usr/bin/npm 

并将“node_modules”放在/ usr / lib / node_modules下。

就像我说的,我在代理的后面,所以我把“proxy”和“https-proxy”configuration属性设置为正确的值。

当我试图安装browserify(在他们的网站上指定)

 $ npm install -g browserify 

我收到一个错误

 ...npm ERR! stack Error: EACCES, mkdir '/usr/lib/node_modules/browserify'... 

所以我“chown”/ usr / lib / node_modules目录让我访问node_modules中的mkdirs:

 $ sudo chown -R $USER /usr/lib/node_modules 

错误:现在,当我尝试安装browserify全局我得到一个不同的错误:

 npm ERR! Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js' npm ERR! { [Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '../lib/node_modules/browserify/bin/cmd.js' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! System Linux 2.6.32-431.el6.x86_64 npm ERR! command "node" "/usr/bin/npm" "install" "-g" "browserify" npm ERR! cwd /usr/lib/node_modules npm ERR! node -v v0.10.33 npm ERR! npm -v 1.3.6 npm ERR! path ../lib/node_modules/browserify/bin/cmd.js npm ERR! code EACCES npm ERR! errno 3 npm ERR! stack Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js' npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /usr/lib/node_modules/npm-debug.log npm ERR! not ok code 0 

有什么特别的,我需要改变,以允许NPM创build符号链接?

另外,我尝试以根用户身份运行安装,但它只是坐在那里,直到最终超时:

 ...npm ERR! network tunneling socket could not be established, cause=read ECONNRESET... 

我最近遇到这个问题。 全局模块应该以root身份安装(sudo)。 我的进程失败的地方(类似于你的)是以超级用户身份运行时的超时时间。 这是由于NPM正在使用“git”协议。 要安装软件包,我必须运行以下到我的gitconfiguration。

 git config --global url."https://".insteadOf git:// 

这解决了我的问题。

我终于能够使用npm全局安装模块。

我做了什么:

我不得不使用sudo,并在几个地方设置代理/ HTTPS代理。 我遵循这个博客的build议: http : //wil.boayue.com/blog/2013/06/14/using-npm-behind-a-proxy/ 。

我在〜/ .bashrc中设置了以下variables并导出它们:

  • HTTP_PROXY
  • https_proxy
  • npm_config_proxy
  • npm_config_https_proxy

我也使用visudo将它们添加到env_keep(所以它们可用于sudo)。

然后,我使用以下命令在npm上设置代理和https-proxyconfiguration设置:

 $ npm config set proxy http://<proxy>:<port> $ npm config set proxy http://<proxy>:<port> 

我不确定是否所有这些都是必要的,但对我有用。 此外,有一次我意识到我有不正确的代理,不得不在几个地方改变它(所以一定要仔细检查)。