就是說 npm 出於安全考慮不支持以 root 用戶運行,即使你用 root 用戶身份運行了,npm 會自動轉成一個叫 nobody 的用戶來運行,而這個用戶幾乎沒有任何權限。
這樣的話如果你腳本里有一些需要權限的操作,比如寫文件(尤其是寫 /root/.node-gyp),就會報無權限
為了避免這種情況,要么按照 npm 的規矩來,專門建一個用於運行 npm 的高權限用戶;要么加 –unsafe-perm 參數,這樣就不會切換到 nobody 上,運行時是哪個用戶就是哪個用戶,即使是 root。
經常是安裝node-sass的時候會很容易出現因為權限不夠無法創建目錄的問題
所以最終在jenkins配置的命令如下:
npm cache clean -f
npm install --unsafe-perm=true
rm -rf ./dist/*
npm run build:prod