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

Node v18.14.2下Azure DevOps中React构建失败,设NODE_OPTIONS仍无效

解决方案:Azure DevOps 中 Node.js 构建报ERR_OSSL_EVP_UNSUPPORTED问题

问题根源

本地使用的set NODE_OPTIONS=--openssl-legacy-provider是 Windows 专属的环境变量设置语法,但 Azure DevOps 的构建代理若为 Linux/macOS 环境,该语法无法生效,导致NODE_OPTIONS未被正确配置,触发 OpenSSL 兼容性错误。

具体修复方案

1. 用跨平台工具统一设置环境变量

修改package.json中的构建命令,借助cross-env实现 Windows、Linux、macOS 环境下的环境变量统一设置:

"build:prod": "cross-env NODE_OPTIONS=--openssl-legacy-provider lingui add-locale en && lingui extract --clean && lingui compile && webpack --mode production"

先安装cross-env依赖:

npm install cross-env --save-dev

2. 在 Azure DevOps 管道中全局配置环境变量

无需修改项目代码,直接在 Azure DevOps YAML 管道中为构建步骤注入环境变量:

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '18.14.2'
  displayName: '安装 Node.js 18.14.2'

- script: |
    npm install
    npm run build:prod
  displayName: '安装依赖并执行构建'
  env:
    NODE_OPTIONS: '--openssl-legacy-provider'

3. 确认代理的 Node.js 版本

确保 Azure DevOps 构建代理使用的 Node.js 版本与本地一致(v18.14.2),通过NodeTool任务强制指定版本即可避免版本差异问题。

4. 为单个命令单独配置变量

若全局设置无效,可尝试为每个需要的命令单独指定环境变量:

"build:prod": "lingui add-locale en && NODE_OPTIONS=--openssl-legacy-provider lingui extract --clean && NODE_OPTIONS=--openssl-legacy-provider lingui compile && NODE_OPTIONS=--openssl-legacy-provider webpack --mode production"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:12:46