簡體   English   中英

NPM無法全局安裝browserify

[英]NPM unable to install browserify globally

我無法全局安裝Browserify(或其他任何工具)。 我能夠非全局地安裝東西,而不會出現問題。

背景:我正在代理后面的公司網絡上運行CentOS 6.6。 我使用“ yum”作為根安裝了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下。

就像我說的那樣,我在代理后面,所以我將“代理”和“ https-代理”配置屬性設置為正確的值。

當我嘗試安裝browserify(在其網站上指定)時

$ npm install -g browserify

我收到一個錯誤

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

因此,我“阻塞”了/ 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創建符號鏈接嗎?

另外,我嘗試以root用戶身份運行安裝程序,但是它一直坐在那里直到最終超時:

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

我最近遇到了這個問題。 全局模塊應作為root(sudo)安裝。 我的進程失敗的地方(與您的失敗類似)是以root用戶身份運行時超時。 這是由於NPM使用了“ git”協議。 要安裝軟件包,我必須在git config中運行以下命令。

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

這解決了我的問題。

我終於可以使用npm在全球范圍內安裝模塊。

我做了什么:

我不得不使用sudo並在幾個地方設置了proxy / https代理。 我遵循了該博客的建議: http : //wil.boayue.com/blog/2013/06/14/using-npm-behind-a-proxy/

我在〜/ .bashrc中設置以下變量並將其導出:

  • http_proxy
  • https_proxy
  • npm_config_proxy
  • npm_config_https_proxy

我還使用visudo將它們添加到env_keep(因此它們可用於sudo)。

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

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

我不確定這是否必要,但對我有用。 另外,有一點我意識到我的代理服務器不正確,不得不在幾個地方進行更改(因此請務必仔細檢查)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM