解決Mac下npm權限問題

前言

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

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

正文

  官方給出兩種方法 :git

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

或者npm

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

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

  先說第一種方法,我這裏是用的是 nvm。學習

安裝命令:測試

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

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

 

以上。

相關文章
相關標籤/搜索