Skip to main content

node.js環境各種神秘問題解決

· 3 min read
Adam You

前言

開發 Vue專案過程當中遇過各種node環境的神秘問題。最奇怪的是本機端的 node版本和 server端完全相同,但是本機端的 npm install和 npm build是正常時,確不能保證 server端也同樣沒有問題。

我自己將常遇到的問題整理成筆記順便分享給大家。但每個人的開發環境及可能遇到的問題皆不相同,所以就僅供參考了。

1. 切換node版本造成sass打包噴錯:

首先確認 node跟 node-scss 版本對照表,初步排除裝錯版本的問題。

2. npm神秘的 cache問題:

排除 cache的問題

rm -r node_modules
npm cache clean --force

再來重新 npm install、重新打包試試

解決方式

如果上述問題都已排除,並且同樣的 package.json在不同環境下有的可以 build成功有的不成功(比如本機可以但server上失敗),這種情形通常是發生在有更換環境node版本的情形下。

解決方式:

npm rebuild sass

然後再重新 npm install就可以了

我的理解是某些 package的依賴是存放在 npm的環境當中,而不是專案的 node_mobules當中,所以更換版本後要再重新編譯 (rebuild)。

3. root權限問題:

錯誤訊息 gyp ERR! stack Error: EACCES: permission denied

造成錯誤的原因是npm不適用 root帳戶權限,加上參數--unsafe-perm=true --allow-root可解決問題

sudo npm i --unsafe-perm=true --allow-root

參考資料

What is difference between 'npm install' and 'npm rebuild'?

npm rebuild node-sass 是什么意思,为什么要使用

npm install 报错,提示gyp ERR! stack Error: EACCES: permission denied 解决方法