問題:
Vue專案在安裝依賴時報錯:"this[kHandle] = new _Hash(algorithm, xofLen);"
原因:
這個錯誤通常是由於Node.js版本更新導致的。新版本的Node.js包含了OpenSSL 3.0,它對加密演算法和金鑰大小有更嚴格的限制,可能會影響一些舊專案。
解決方案:
1. 臨時解決(需要每次啟動時設定):
- 在VS Code終端中:
$env:NODE_OPTIONS="--openssl-legacy-provider"
- 在Windows CMD中:
SET NODE_OPTIONS=--openssl-legacy-provider
2. 永久解決(修改package.json中的scripts):
```json
"scripts": {
"serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
}
```
這些解決方案透過設定NODE_OPTIONS環境變數,使用舊版的OpenSSL提供程式,從而解決了相容性問題。
建議:
雖然這些方法可以解決問題,但長期來看,更新專案依賴和程式碼以適應新版Node.js可能是更好的解決方案。這可以確保專案使用最新的安全更新和功能。
————————————————
版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。
原文連結:https://blog.csdn.net/Ultravioletrays/article/details/140077558