問題來源
由于圖片體積太大,首次加載頁面速度過慢,于是想對圖片進(jìn)行壓縮(這里對圖片進(jìn)行處理是在后臺進(jìn)行的),
后面找到了兩款款插件,我的項(xiàng)目使用第二款:
1.gm
2.sharp
開始項(xiàng)目是運(yùn)行在window環(huán)境下的,沒有出現(xiàn)任何問題,但我部署到ubuntu云服務(wù)器,并使用npm i初始化項(xiàng)目時報出以下錯誤:

bf31cb9bfcf08e46c6c57ec246cc0b4.png
報錯原因
npm install 相關(guān)的文件系統(tǒng)權(quán)限問題
解決方法
只需在項(xiàng)目運(yùn)行以下命令,即可解決問題。
npm install --unsafe-perm
npm install --unsafe-perm的參數(shù)--unsafe-perm有什么作用,在網(wǎng)上查了一下
是怎么說的,npm 出于安全考慮不支持以 root 用戶運(yùn)行,即使你用 root 用戶身份運(yùn)行了,npm 會自動轉(zhuǎn)成一個叫 nobody 的用戶來運(yùn)行,而這個用戶幾乎沒有任何權(quán)限。這樣的話如果你腳本里有一些需要權(quán)限的操作,比如寫文件(尤其是寫 /root/.node-gyp),就會崩掉了。
為了避免這種情況,要么按照 npm 的規(guī)矩來,專門建一個用于運(yùn)行 npm 的高權(quán)限用戶;要么加 --unsafe-perm 參數(shù),這樣就不會切換到 nobody 上,運(yùn)行時是哪個用戶就是哪個用戶,即使是 root。
我的解決方案來自https://github.com/lovell/sharp/issues/1627,這篇文章只是對自己的問題進(jìn)行一個總結(jié)。