解決Mac下npm權限問題


前言

  在學習Vue-CLI3的時候使用了全局安裝,提示安裝失敗,本以為是npm版本問題,在更新npm的過程中又出現了 npm ERR! code: 'EACCES' ,查了一下發現是權限問題。

  看到權限不足第一反應就是使用 sudo,  sudo 確實能解決一些權限問題,但卻不是最好的解決方案。

正文

  官方給出兩種方法 :

  使用node版本管理器重新下載npm(Reinstall npm with a node version manager)

或者

  手動修改npm的默認目錄(Manually change npm’s default directory)

------------------------------------分割線------------------------------------

  先說第一種方法,我這里是用的是 nvm。

安裝命令:

 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 

or Wget:

 wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 

 

  安裝好會提示重新啟動終端,重啟之后輸入  nvm --version  , 顯示版本號則說明安裝成功。

  如果顯示  command not found: nvm  可能是nvm沒安裝好,還有可能是缺少 .bash_profile 文件。

 

  在home目錄創建 .bash_profile 文件 (cd ~  , touch .bash_profile),寫入

export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

保存以后重新運行安裝命令,安裝后重啟終端即可。 我運行  npm install -g @vue/cli  可以下載了。

  第二種方法,手動修改npm的默認目錄(具有讀寫權限的目錄),如下

  1.創建全局目錄

 mkdir ~/.npm-global

  2.配置npm使用新路徑

npm config set prefix '~/.npm-global'

  3.打開或創建一個~/.profile文件並添加以下代碼

export PATH=~/.npm-global/bin:$PATH

  4.在命令行上,更新系統變量

source ~/.profile

  5.測試新配置,不用sudo全局下載安裝包

npm install -g jshint

不想使用 2-4,還可以使用相應的環境變量(例如,你不想修改~/.profile)來實現

NPM_CONFIG_PREFIX=~/.npm-global

 

參考資料:

Resolving EACCES permissions errors when installing packages globally

Downloading and installing Node.js and npm

nvm

 

以上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM