天天看點

npm全局權限設定 - Mac

在很多時候,即使使用了sudo指令來安裝npm的全局子產品包,仍然還會出現npm的權限問題

網絡上的常見方法

  • 目前網絡上常見的方法都是修改npm安裝路徑的權限

通過使用指令

npm config get prefix
           

得到npm的路徑,結果大部分都是/usr/local。然後,很多方法都會要求将該路徑的權限修改為目前使用者

即,使用指令

sudo chown -R $(whoami) /usr/local
           

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

但這種方法在Mac OS達到10.12及之後便無效了,系統預設無法更改/usr/local檔案夾的所有權,會提示: chown: /usr/local: Operation not permitted

官網給出的方法

然而實際上,node官網早已對這種情況作出了合理的修改方法,并且官網強烈建議使用者不要使用root、sudo等方法覆寫權限。連結如下: node官網給出的修改方法

使用nvm重新安裝node

nvm 即node version manager,這是node官網的推薦方法,使用nvm安裝node時會自動申請各種權限,在之後的使用中就不會有權限問題了

安裝方法如下: node官網給出的安裝方式

改變npm的預設路徑

第二個方法是我目前使用的方法,這也是不想重新安裝node的使用者可以采用的方法。可以将預設的全局安裝路徑修改到目前使用者的home目錄下

  1. 建立一個全局安裝的路徑
    mkdir ~/.npm-global
               
  2. 配置npm使用新的路徑
    npm config set prefix ‘~/.npm-global’
               
  3. 打開或建立~/.bash_profile檔案,在末尾加入
    export PATH=~/.npm-global/bin:$PATH
               
  4. 更新系統環境變量
    source ~/.bash_profile
               
  • PS: 如果你不想去修改.bash_profile檔案的話,你也可以使用如下指令
    # 配置npm config的路徑
     NPM_CONFIG_PREFIX=~/.npm-global
               

使用npx安裝全局子產品

同時,如果你的npm版本是在5.2及以上的時候,在安裝npm全局子產品時,node官方更推薦你使用npx指令。npx的官方指南連接配接

  • 注意: 上面那個網站可能需要FQ,是以可以直接百度npx的使用方式

繼續閱讀