就是說 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