Saki's 研究记录

[解决] error/0308010C/digital envelope routines//unsupported

字数统计: 346阅读时长: 1 min
2022/01/23

坏境

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
2
3
4
5
6
7
# 安装 node 16.13.0 版本
nvm install 16.13.0
# 设置默认使用 node 版本
nvm alias default v16.13.0
# 确认切换是否成功
node -v
v16.13.0

引用

[Solved] Failed to construct transformer: Error: error:0308010C:digital envelope routines::unsupported
[问题]项目无法启动,error:0308010C:digital envelope routines::unsupported #9272

以上。

CATALOG
  1. 1. 坏境
  2. 2. 问题
  3. 3. 原因
  4. 4. 解决办法
    1. 4.0.1. 方案 1
    2. 4.0.2. 方案 2
  • 5. 引用