一:背景
git新拉了个web工程,npm install 之后,npm run dev启动时报了这个错:
Error: error:0308010C:digital envelope routines::unsupported
at Hash (node:internal/crypto/hash:79:19)
at Object.createHash (node:crypto:139:10)
at D:\work\wonders\git\workspace\java\shanxi\dev\pro-web\node_modules\compression-webpack-plugin\dist\index.js:243:42
at CompressionPlugin.compress (D:\work\wonders\git\workspace\java\shanxi\dev\pro-web\node_modules\compression-webpack-plugin\dist\index.js:284:9)
at D:\work\wonders\git\workspace\java\shanxi\dev\pro-web\node_modules\compression-webpack-plugin\dist\index.js:305:12
at _next1 (eval at create (D:\work\wonders\git\workspace\java\shanxi\dev\pro-web\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:14:17)
at eval (eval at create (D:\work\wonders\git\workspace\java\shanxi\dev\pro-web\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:33:1)
at D:\work\wonders\git\workspace\java\shanxi\dev\pro-web\node_modules\copy-webpack-plugin\dist\index.js:91:9
二:分析
检索了相关博客,大致的意思是 node版本在 17+版本后增加了OpenSSL3.0,对允许算法和密钥大小增加了严格的限制
以下是我的node版本
版本安装的最新的໒𖦹ࡇ𖦹 ͛১໒𖦹ࡇ𖦹 ͛১ 避坑
三:问题解决
本文章介绍两种方式
**
第一:降低node版本,将node版本降到 16.x.x 版本
**
以MAC电脑为例:
1.安装n版本
sudo npm install n -g
注意:sudo需要加,不加的话会提示无权限
2.安装稳定版
sudo n stable
3.安装最新版本
sudo n latest
4.降低版本(也可以升级版本)
sudo n 16.17.0
5.检查当前版本
node -v
第二:修改项目中package.json文件
找到"scripts"
我这里如下图:
在你的启动项前面加上:set NODE_OPTIONS=--openssl-legacy-provider &&
最后启动:npm run dev
◍˃ᵕ˂◍完美解决!◍˃ᵕ˂◍
⬜️⬜️⬜️⬜️✌️✌️✌️⬜️⬜️⬜️
⬜️⬜️⬜️✌️⬜️⬜️⬜️⬜️⬜️⬜️
⬜️⬜️✌️⬜️⬜️⬜️⬜️⬜️⬜️⬜️
⬜️✌️✌️⬜️✌️✌️⬜️⬜️⬜️⬜️
⬜️✌️✌️✌️⬜️⬜️✌️✌️⬜️⬜️
⬜️✌️✌️⬜️⬜️⬜️⬜️✌️⬜️⬜️
⬜️✌️✌️⬜️⬜️⬜️⬜️✌️⬜️⬜️
⬜️✌️✌️✌️⬜️⬜️✌️✌️⬜️⬜️
⬜️⬜️✌️✌️✌️✌️✌️⬜️⬜️⬜️
⬜️⬜️⬜️✌️✌️✌️⬜️⬜️⬜️⬜️