在mac OS或liunx系統下,有時候在安裝node-sass時會出現,Permissions Errors
可能出現的情況是這樣:
閱讀後你將得到什麼
- 你將成功的解決node-sass安裝不了苦惱(相同或類似的問題)
- 不僅僅是node-sass,其他模組如此類問題,同樣可以解決
- 你將獲得處理此類問題的,多種解決方案
- 你將瞭解到出現此類問題的原因,以及如何避免此類問題
錯誤分析
找到輸出資訊裡的關鍵詞user "root" does not have permission to access the dev dir
貌似是許可權問題,但有時候是root
使用者了,為什麼會有許可權問題?
解決問題的方案有下面幾種:
方案一 新增引數(--unsafe-perm)
在安裝node-sass
時,使用引數--unsafe-perm
例如:
npm install --unsafe-perm node-sass
複製程式碼
解析:
--unsafe-perm
在root下預設值為false,其他的預設值為true
設定為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
複製程式碼
通過上述方法的其中一種,就可以解決問題。