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

Node.js v19.5.0下Next.js项目遇OpenSSL初始化错误,求非降级方案

解决Next.js + Node.js v19.5.0的ERR_OSSL_EVP_UNSUPPORTED错误

临时解决(单次生效)

  • macOS/Linux:在终端执行命令前追加环境变量:
    NODE_OPTIONS=--openssl-legacy-provider npm run dev
    # 构建时执行
    NODE_OPTIONS=--openssl-legacy-provider npm run build
    
  • Windows CMD:先设置环境变量再运行脚本:
    set NODE_OPTIONS=--openssl-legacy-provider
    npm run dev
    
  • Windows PowerShell:
    $env:NODE_OPTIONS="--openssl-legacy-provider"
    npm run dev
    

永久解决(修改package.json)

直接在package.json的scripts字段中嵌入环境变量,后续运行npm命令时自动生效:

macOS/Linux适配版:

"scripts": {
  "dev": "NODE_OPTIONS=--openssl-legacy-provider next dev",
  "build": "NODE_OPTIONS=--openssl-legacy-provider next build",
  "start": "NODE_OPTIONS=--openssl-legacy-provider next start"
}

Windows CMD适配版:

"scripts": {
  "dev": "set NODE_OPTIONS=--openssl-legacy-provider && next dev",
  "build": "set NODE_OPTIONS=--openssl-legacy-provider && next build",
  "start": "set NODE_OPTIONS=--openssl-legacy-provider && next start"
}

更优方案:升级Next.js

如果你的Next.js版本偏旧,直接升级到最新稳定版即可——官方已适配Node.js 17+的OpenSSL 3.0特性,升级后无需额外配置就能解决问题:

npm install next@latest react@latest react-dom@latest

错误原因

Node.js 17及以上版本默认启用OpenSSL 3.0,禁用了部分旧版加密算法。旧版Next.js或其依赖库仍在调用这些被禁用的算法,从而触发ERR_OSSL_EVP_UNSUPPORTED初始化错误。添加--openssl-legacy-provider参数会启用OpenSSL的旧加密提供者以兼容依赖;升级Next.js则是从根源上适配新的加密标准。

内容的提问来源于stack exchange,提问作者kartik Krishna sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:47:11