Node-Sass安裝失敗引起的思考

在mac OS或liunx系統下,有時候在安裝node-sass時會出現,Permissions Errorsnode

可能出現的狀況是這樣:linux

loop reinstall


閱讀後你將獲得什麼git

  1. 你將成功的解決node-sass安裝不了苦惱(相同或相似的問題)
  2. 不單單是node-sass,其餘模塊如此類問題,一樣能夠解決
  3. 你將得到處理此類問題的,多種解決方案
  4. 你將瞭解到出現此類問題的緣由,以及如何避免此類問題

錯誤分析

找到輸出信息裏的關鍵詞user "root" does not have permission to access the dev dirgithub

貌似是權限問題,但有時候是root用戶了,爲何會有權限問題?npm

解決問題的方案有下面幾種:sass

方案一 添加參數(--unsafe-perm)

在安裝node-sass時,使用參數--unsafe-permbash

例如:工具

npm install --unsafe-perm node-sass
複製代碼

解析:oop

--unsafe-perm 在root下默認值爲false,其餘的默認值爲trueui

設置爲true,在run package script時會切換UID/GID 明確設置爲false,在非root用戶下安裝會失敗

方案二 添加參數(--user=root)

在安裝node-sass時,使用參數--user=root

例如:

npm install --user=root node-sass
複製代碼

該參數指定了再執行腳本時使用的帳號(UID),默認是nobody

方案四 修改現有node的權限

若是你是直接使用了已經編譯後的node版本

那麼你解壓以後的目錄權限多是這樣的

drwxrwxr-x  7 dev  dev  4.0K 3月  24 11:25 node-v8.10.0-linux-x64
複製代碼

也多是這樣的

drwxrwxr-x  7 500  500  4.0K 3月  24 11:25 node-v8.10.0-linux-x64
複製代碼

這裏就須要修改node目錄的權限爲root

chown root:root node-v8.10.0-linux-x64
複製代碼

方案四 從新安裝node(推薦使用nvm)

nvm是個node版本管理工具,能夠方便的下載安裝node,而且能夠方便的切換node版本

這是直接貼上nvm地址,如何安裝看文檔

方案五 npm提供的解決方案(How to Prevent Permissions Errors)

## 建立.npm-global目錄
 mkdir ~/.npm-global
 ## 設置
 npm config set prefix '~/.npm-global'
 export PATH=~/.npm-global/bin:$PATH
 source ~/.profile

複製代碼

經過上述方法的其中一種,就能夠解決問題。



參考

相關文章
相關標籤/搜索