修改npm全局安裝包的位置,解決EACCES權限拒絕問題

簡介

​ 在macOS系統下,npm默認的全局安裝路徑是在/usr/local/lib/node_modules下。例如:當咱們執行npm i -g vue-cli時,其實是把vue-cli這個模塊安裝到了/usr/local/lib/node_modules目錄下了。vue

​ ⚠️注意: /usr/local/lib這個是系統目錄,會有權限問題,雖然可使用sudo執行,可是仍是有部分機器,即便使用root用戶執行npm i -g xxx 全局安裝某個模塊仍是會出現EACCES permissions權限被拒絕問題。node

​ 🚀解決辦法: 經過修改npm全局安裝模塊的路徑解決,將npm全局安裝模塊的路徑,修改到當前登錄用戶的HOME目錄下便可,這樣用不用sudo都不會出現EACCES permissions權限被拒絕問題了。vue-cli

​ ⚠️️注意:本教程不適合Windows系統shell

操做

0、查看當前npm的默認配置
npm config ls
一、在你的用戶主目錄下建立.npm-global文件夾做爲npm全局安裝的目錄
mkdir ~/.npm-global
二、修改npm使用新的全局安裝路徑
npm config set prefix '~/.npm-global'
三、修改PATH環境變量
vim ~/.bash_profile  //編輯.bash_profile文件,這個文件是用戶登錄終端的時候會自動執行的文件
四、在~/.bash_profile文件添加下面這行代碼
export PATH=~/.npm-global/bin:$PATH

五、更新系統變量,獲取重啓命令行終端
source ~/.bash_profile
六、測試配置,在不使用sodu的狀況下全局安裝一個包
npm install -g jshint

​ 能夠看到此後全局安裝的模塊都被安裝到了/Users/jameswain/.npm-global目錄下了npm

總結

​ 其實解決全局安裝模塊權限不足問題的方法:主要是將npm全局安裝模塊的目錄修改到了用戶的主目錄下,這樣用戶不須要sodu也可以全局安裝模塊,由於它是在本身的主目錄下操做,永遠不會存在權限問題。vim

相關文章
相關標籤/搜索