npm權(quán)限修復(fù)


id: fixing-npm-permissions
title: 03-npm權(quán)限修復(fù)
prev: installing-node
next: installing-npm-packages-locally


當(dāng)試圖安裝一個全局包的時候你可能會遇到 EACCES 錯誤。這個錯誤表明你沒有當(dāng)前npm用來存儲全局包命令目錄的寫權(quán)限。

可以通過下面兩種方式之一來修復(fù)解決這個問題:

  1. 修改npm默認(rèn)目錄的權(quán)限
  2. 修改npm默認(rèn)目錄的位置

在做接下來修改前最好先備份您的電腦

方式一:修改npm默認(rèn)目錄的權(quán)限

  1. 找到npm目錄路徑
    npm config get prefix

大多數(shù)系統(tǒng),目錄一般是 /usr/local

警告:如果路徑顯示的是 /usr,直接采用第二種方式

  1. 修改npm目錄的擁有者為當(dāng)前用戶
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

使用這個命令同時修改了npm下面子目錄和其他工具命令(lib/node_modules,bin,and share)

方式二:修改npm默認(rèn)目錄的位置

有時候并不希望修改npm默認(rèn)目錄的擁有者,因為這樣可能會導(dǎo)致一些其他不可預(yù)期的問題,例如:你正在與其他用戶共享同一個系統(tǒng)

我們可以采用修改npm目錄位置。在我們的案例中,使用的是用戶根目錄下面的隱藏目錄

  1. 創(chuàng)建一個目錄用于全局包安裝
    mkdir ~/.npm-global
  2. 配置npm使其使用新的目錄
    npm config set prefix '~/.npm-global
  3. 打開或者新建~/.profile文件,并添加目錄路徑
    export PATH=~/.npm-global/bin:$PATH
  4. 返回命令行界面,更新系統(tǒng)變量
    source ~/.profile

測試:不使用sudo下載一個全局包
npm install -g jshintjia'r

你也可以通過修改ENV環(huán)境變量來代替24步驟(假如你不想修改/.profile)
NPM_CONFIG_PREFIX=~/.npm-global npm install -g jshint

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Fixing npm permissions 修補(bǔ)npm權(quán)限 You may receive an EACCESe...
    noai閱讀 1,133評論 0 1
  • 當(dāng)安裝全局包的時候可能會得到EACCES錯誤。這表示你沒有npm使用存儲全局包和命令目錄的寫權(quán)限。 可以通過以下三...
    竹天亮閱讀 2,525評論 0 1
  • Node.js使得在服務(wù)器端使用JavaScript編寫應(yīng)用程序成為可能。它是基于V8Javascript運(yùn)行時并...
    間陽幕賓閱讀 1,603評論 0 5
  • 可找同學(xué)幫忙完成提醒監(jiān)督工作。
    zhoujieyhl閱讀 118評論 0 0