背景
next 13的项目,运行 npm run dev的时候报错了
Error: error:0308010C:digital envelope routines::unsupported
解决
分析发现通常是安装了 Node.js v17及以上比较新的版本,然后使用了webpack4。
方案一
降级到v16版本。可以直接重新安装v16版本,或者使用 gnvm 来切换版本
方案二
开启 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
。其他的指令如果有报错的,也是同理