因为最近安装了pnpm对node版本有要求,升级了node版本是18+以后,在运行之前的项目,就跑不起来了,报错如下:
bash
Error: error:0308010C:digital envelope routines::unsupported
解决方案一:
node版本切换到16版本
使用nvm管理node版本,如下
bash
//nvm查看node版本
nvm list
//nvm使用指定node版本
nvm use 16.18.0
//再看下当前版本
nvm list
注意:切换到低于18版本的node以后,pnpm无法使用
node18+可以用pnpm
解决方案二
仅限 windows可用:
在项目中 package.json 文件中 scripts 中新增 SET NODE_OPTIONS=--openssl-legacy-provider
没加之前:
bash
"scripts": {
"start": "cross-env PROJECT_ENV=dev umi dev",
},
加之后:
bash
"scripts": {
"start": "SET NODE_OPTIONS=--openssl-legacy-provider && cross-env PROJECT_ENV=dev umi dev",
},