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

如何解决Node.js 18中“Error: error:0308010C:digital envelope routines::unsupported”错误

解决NuxtJS升级Node/ESLint后“不支持哈希函数”启动错误

针对你遇到的问题,以下是几个针对性的排查和解决方向:

1. 临时启用OpenSSL旧兼容模式

高版本Node.js(v17+)默认禁用了MD4等弱哈希算法,部分旧版Nuxt依赖或webpack配置可能仍在使用这些算法。可以通过启动参数临时开启兼容:

  • 修改package.json中的启动脚本:
"scripts": {
  "dev": "node --openssl-legacy-provider node_modules/@nuxt/cli/bin/nuxt.js",
  "build": "node --openssl-legacy-provider node_modules/@nuxt/cli/bin/nuxt.js build"
}
  • 直接执行启动命令:
    node --openssl-legacy-provider node_modules/@nuxt/cli/bin/nuxt.js

2. 检查Nuxt与Node版本兼容性

确认当前Nuxt版本是否适配你升级后的Node.js版本:

  • Nuxt 2.x:建议升级到2.17.x及以上的最新小版本,以获得对Node 18+/20+的更好支持。
  • Nuxt 3.x:确保Node版本在v16.11+以上,若仍有问题,尝试升级Nuxt到最新稳定版。

3. 排查nuxt.config.js中的配置问题

检查你的nuxt.config.js是否存在依赖旧哈希算法的配置:

  • 查看build字段下的webpack扩展配置,若手动指定了旧哈希算法,修改为支持的类型:
build: {
  extend(config) {
    // 若原有配置为MD4/MD5,替换为sha256等支持的算法
    config.output.hashFunction = 'sha256'
  }
}
  • 尝试临时禁用第三方插件,排查是否是插件依赖旧加密逻辑导致的问题。

4. 更新依赖并清除缓存

  • 删除node_modules、package-lock.json(或yarn.lock),重新执行npm install(或yarn install)。
  • 执行npx nuxt clean清除Nuxt缓存后,再尝试启动服务。

5. 升级第三方依赖

排查项目中是否存在版本过低的依赖(如老版本webpack、css-loader等),将这些依赖升级到适配当前Node版本的最新稳定版。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:00:49