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

CesiumJS项目执行npm run server报_HASH函数不支持错误求助

解决CesiumJS项目运行npm run server时的ERR_OSSL_EVP_UNSUPPORTED错误

错误原因

这个ERR_OSSL_EVP_UNSUPPORTED错误,是因为Node.js v17及以上版本默认启用了严格的OpenSSL算法规范,而项目依赖的旧版webpack使用了不被支持的哈希算法(比如MD4),导致加密哈希函数初始化失败。


解决方案(按易操作程度排序)

方案1:临时修改启动命令(最快生效)

直接在项目的package.json中修改server命令,添加Node.js兼容参数:

  • Mac/Linux 或 Windows Git Bash:
    "scripts": {
      "server": "NODE_OPTIONS=--openssl-legacy-provider npm run start"
      // 如果原命令是直接调用webpack-dev-server,改成:
      // "server": "NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server"
    }
    
  • Windows CMD:
    "scripts": {
      "server": "set NODE_OPTIONS=--openssl-legacy-provider && npm run start"
    }
    
  • Windows PowerShell:
    "scripts": {
      "server": "$env:NODE_OPTIONS='--openssl-legacy-provider'; npm run start"
    }
    

修改后重新执行npm run server即可。

方案2:降级Node.js到稳定版(长期兼容)

Node.js v16.x是长期支持(LTS)版本,对旧项目兼容性更好:

  1. 卸载当前安装的Node.js v19.7.0
  2. 安装nvm(Node版本管理器),用来轻松切换Node版本
  3. 打开终端执行:
    # 安装v16.20.0(LTS版本)
    nvm install 16.20.0
    # 切换到该版本
    nvm use 16.20.0
    
  4. 进入项目目录,删除node_modules文件夹和package-lock.json文件
  5. 重新安装依赖:npm install
  6. 执行npm run server启动项目

方案3:升级webpack版本(根治问题,需注意兼容性)

如果项目允许升级依赖,可以把webpack升到5.x版本(该版本适配Node.js v17+的算法规范):

  1. 查看当前webpack版本:npm list webpack
  2. 执行命令升级核心依赖:
    npm install webpack@latest webpack-cli@latest webpack-dev-server@latest --save-dev
    
  3. 升级后检查webpack配置文件,确保CesiumJS相关的loader、插件适配新版本(比如Cesium的CesiumWebpackPlugin如果版本旧,也需要同步升级)

额外提示(针对CesiumJS项目)

  • 如果是官方Cesium示例项目,建议先查看项目README里的版本要求,确保Node.js和依赖版本匹配
  • 每次修改依赖后,记得删除node_modules和package-lock.json再重新安装,避免缓存导致的异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:23:10