坏境
OS 版本: Mac OS Monterey 12.1
nodejs 版本:v17.3.1
npm 版本:8.1.0
nvm 版本:0.39.1
问题
Hello Guys, How are you all? Hope You all Are Fine.
今天心血来潮把node
更新到了最新版本,当我用vue create demo-vue
命令创建了个新工程,运行npm run serve
时出现报错:
1 | opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ] |
原因
看错误报告里讲node17.0
以上的版本会出现这个情况。
nodejs 17: digital envelope routines::unsupported #14532
解决办法
如果不能根据上面官方链接里提供的方法【方案1】解决的方法解决,就和我一样降低nodejs
的版本【方案2】。
方案 1
环境变量里面加个变量,将OpenSSL
降回到老策略去:
1 | export NODE_OPTIONS=--openssl-legacy-provider |
方案 2
版本回退到Node.js 16
。
如果平时工作的项目所使用的node
版本不一样,通过全局频繁卸载安装的方式显然效率低下。推荐使用nvm
来安装管理node
版本,并且node
版本间的切换也非常方便。nvm
切换node
版本步骤:
1 | # 安装 node 16.13.0 版本 |
引用
[Solved] Failed to construct transformer: Error: error:0308010C:digital envelope routines::unsupported
[问题]项目无法启动,error:0308010C:digital envelope routines::unsupported #9272
以上。