You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

旧Next.js项目启动dev报错:error:0308010C:digital envelope routines::unsupported

解决Next.js旧项目启动时的ERR_OSSL_EVP_UNSUPPORTED错误

这个错误是因为你当前用的Node.js v19启用了新的OpenSSL加密算法,而项目依赖的Next.js 11.x版本配套的Webpack版本不支持该算法,导致哈希生成失败。以下是三种可行的解决办法:

方法一:临时启用旧加密算法(最快解决)

修改package.json中的启动脚本,添加环境变量指定使用旧的OpenSSL提供程序:

{
  "scripts": {
    "develop": "NODE_OPTIONS=\"--openssl-legacy-provider\" next dev",
    "dev": "NODE_OPTIONS=\"--openssl-legacy-provider\" next dev",
    "build": "NODE_OPTIONS=\"--openssl-legacy-provider\" next build",
    "start": "NODE_OPTIONS=\"--openssl-legacy-provider\" next start",
    "deploy": "NODE_OPTIONS=\"--openssl-legacy-provider\" next build && next export",
    "lint": "next lint",
    "lint:fix": "next lint --fix"
  }
}

修改后重新执行npm run dev即可启动项目。

方法二:降级Node.js到兼容版本

Next.js 11.x官方推荐的Node.js版本为12.22.0+、14.16.0+、16.0.0+,你可以用nvm(Node版本管理器)降级:

  • 安装指定版本:nvm install 16
  • 切换到该版本:nvm use 16
    之后直接执行npm run dev就能正常启动。

方法三:升级Next.js到新版本

升级Next.js到12.x及以上版本,这些版本的Webpack已经适配了高版本Node.js的加密算法:

  1. 执行升级命令:
npm install next@latest react@latest react-dom@latest
  1. 检查项目依赖是否兼容,比如react-markdown等旧版依赖可能需要同步升级,避免出现其他兼容性问题。
  2. 测试启动项目:npm run dev

内容的提问来源于stack exchange,提问作者Rom-888

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:22:07