npm run dev报错Error: error:0308010C:digital envelope routines::unsupported

背景

next 13 的项目,运行 npm run dev 的时候报错了

Error: error:0308010C:digital envelope routines::unsupported

分析发现通常是安装了 Node.js v17 及以上比较新的版本,然后使用了 webpack4。

方案一

降级到 v16 版本。可以直接重新安装 v16 版本,或者使用 gnvm 来切换版本

gnvm 切换 node 版本教程

方案二

开启 legacy OpenSSL provider

Windows

set NODE_OPTIONS=--openssl-legacy-provider

Linux 或者 mac

export NODE_OPTIONS=--openssl-legacy-provider

方案三

package.json 中dev指令前设置变量NODE_OPTIONS=--openssl-legacy-provider

改成这样

"dev": "cross-env NODE_OPTIONS=--openssl-legacy-provider next dev",
 "dependencies": {
    "cross-env": "^7.0.3",
}

确保你安装了cross-env。其他的指令如果有报错的,也是同理

参考

评论