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。其他的指令如果有报错的,也是同理

参考

  • npm run dev报错Error: error:0308010C:digital envelope routines::unsupported
  • nodejs 17: digital envelope routines::unsupported
  • Error message “error:0308010C:digital envelope routines::unsupported”

你可能感兴趣的:(前端,npm,前端,node.js)