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

Webpack构建与开发服务启动失败:ERR_OSSL_EVP_UNSUPPORTED错误求助

ERR_OSSL_EVP_UNSUPPORTED错误解决方案

问题场景

使用Node.js v18.12.1,执行npm run build(Webpack 4.44.1构建)或npm run dev(webpack-dev-server启动)时,均抛出以下错误:

Error: error:0308010C:digital envelope routines::unsupported

错误根源是Node.js 18+默认禁用了旧版SSL哈希算法,而Webpack 4及更早版本依赖这些算法。

解决方案

方案1:临时运行命令(快速验证)

Windows(PowerShell)

执行构建或启动命令前添加环境变量:

$env:NODE_OPTIONS="--openssl-legacy-provider"
npm run build
# 或者启动开发服务
$env:NODE_OPTIONS="--openssl-legacy-provider"
npm run dev

Linux/macOS(终端)

NODE_OPTIONS="--openssl-legacy-provider" npm run build
# 或者
NODE_OPTIONS="--openssl-legacy-provider" npm run dev

方案2:修改package.json脚本(永久生效)

直接在package.json的scripts字段中加入环境变量,无需每次手动设置:

"scripts": {
  "build": "NODE_OPTIONS='--openssl-legacy-provider' webpack -p",
  "dev": "NODE_OPTIONS='--openssl-legacy-provider' webpack-dev-server --open"
}

注意:Windows PowerShell中若报错,可将单引号改为双引号:

"scripts": {
  "build": "set NODE_OPTIONS=\"--openssl-legacy-provider\" && webpack -p",
  "dev": "set NODE_OPTIONS=\"--openssl-legacy-provider\" && webpack-dev-server --open"
}

方案3:升级Webpack到兼容版本(长期方案)

Webpack 5.x已适配Node.js 18+的SSL规则,建议升级:

  1. 卸载旧版Webpack及相关依赖:
npm uninstall webpack webpack-dev-server
  1. 安装新版:
npm install webpack@^5 webpack-cli webpack-dev-server@^4 --save-dev
  1. 调整Webpack配置(若有需要):Webpack 5部分配置项有变更,比如output.hashFunction默认已支持sha256,无需额外指定。

附:用户提供的关键信息

错误栈片段

node:internal/crypto/hash:71
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (C:\wamp\www\xxxx\node_modules\webpack\lib\util\createHash.js:135:53)

Webpack配置

const path = require("path");

module.exports = {
  mode: "development",
  entry: path.resolve(__dirname, "src", "app"),
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "bundle.js",
    publicPath: "/",
    hashFunction: "sha256",
  },
  resolve: {
    extensions: [".js", ".jsx"],
  },
  devServer: {
    historyApiFallback: true,
  },
  module: {
    rules: [
      {
        test: /\.jsx?/,
        loader: "babel-loader",
      },
    ],
  },
};

核心依赖版本

  • Node.js: v18.12.1
  • Webpack: ^4.44.1
  • React: ^16.13.1
  • MongoDB: ^3.6.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:35:15