在學習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
以上。