npm 模塊全局安裝的權限問題

我們經常需要安裝全局 npm 模塊,例如:

npm install -g coffee-script

這樣寫往往會報 EACCES 錯誤,因為缺省的 npm 全局安裝目錄(/usr/local/node_modules)沒有給當前登錄用戶以寫權限。所以一般我都是直接寫 sudo npm install -g coffee-script 來解決這個問題。其實還有更好的方法:https://docs.npmjs.com/getting-started/fixing-npm-permissions

文章列出了兩種方法,第一種就是修改 /usr/local/node_modules/usr/local/bin/usr/local/share 這三個目錄的 owner:

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

這種方法適合這臺電腦只有一個開發者使用的場景。

但是我司還有一臺電腦是公共的,可以讓不同的開發者臨時使用,那么就是和方法二:

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

然后修改你的 .profile 或者 .zshrc(像我這樣用zsh的話),添加:

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

根據 ~/.profile 內容更新當前 Shell:

source ~/.profile

從此以后 npm install -g 安裝的模塊就都會到該用戶名字下面的 ~/.npm-global 目錄中,這樣就做到了用戶隔離。

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

推薦閱讀更多精彩內容