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

求助:Next.js在GitHub Actions构建失败,报ERR_OSSL_EVP_UNSUPPORTED错误

解决Next.js在GitHub Actions中构建失败的ERR_OSSL_EVP_UNSUPPORTED问题

问题分析

  • 错误日志显示实际运行的Node版本是v18.12.0,而非你指定的16.16.0,说明工作流中Node版本配置未生效。
  • ERR_OSSL_EVP_UNSUPPORTED 错误源于Node.js 17+默认启用的OpenSSL 3.0算法,与Next.js内置的旧版Webpack不兼容。

修复步骤

步骤1:修正工作流的Node版本配置

你的工作流存在重复checkout步骤,且第三方yarn action未继承setup-node的环境。修改工作流文件如下:

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    
    - name: Install NodeJS
      uses: actions/setup-node@v3
      with:
        node-version: '16.16.0'
        cache: 'yarn' # 可选:缓存依赖加速构建
    
    - name: Install dependencies
      run: yarn install
    
    - name: Lint React App
      run: yarn lint
    
    - name: Build React App
      run: yarn build

关键修改点:

  • 移除重复的actions/checkout@v3步骤。
  • 替换borales/actions-yarn为原生run命令,确保使用setup-node配置的Node版本。
  • 可选添加cache: 'yarn'缓存依赖,减少构建耗时。

步骤2:添加兼容环境变量(若仍报错)

若确认使用Node16后仍出现SSL错误,在build步骤添加环境变量:

- name: Build React App
  run: yarn build
  env:
    NODE_OPTIONS: "--openssl-legacy-provider"

也可在job级别设置环境变量,对所有步骤生效:

jobs:
  build:
    runs-on: ubuntu-latest
    env:
      NODE_OPTIONS: "--openssl-legacy-provider"
    steps:
    # ... 其他步骤保持不变

内容的提问来源于stack exchange,提问作者Sadaf Sid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:15:36