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

运行Ionic项目时遇Node.js加密错误及依赖漏洞问题求助

解决步骤

1. 优先修复ERR_OSSL_EVP_UNSUPPORTED加密错误

这个错误是由于Node.js版本过高,与项目旧依赖的加密算法不兼容导致的,有两种快速处理方式:

  • 临时启动(单次生效):
    # Windows(cmd)
    set NODE_OPTIONS=--openssl-legacy-provider && ionic serve
    
    # Windows(PowerShell)
    $env:NODE_OPTIONS="--openssl-legacy-provider"; ionic serve
    
    # Mac/Linux
    NODE_OPTIONS=--openssl-legacy-provider ionic serve
    
  • 永久生效(可选):将NODE_OPTIONS=--openssl-legacy-provider添加到系统或用户环境变量中,无需每次启动重复输入。

2. 修复依赖兼容性问题

之前使用npm install --force和npm audit fix --force可能破坏了依赖版本匹配,建议回退并重新处理:

  • 删除现有依赖和锁文件:
    # Mac/Linux
    rm -rf node_modules package-lock.json
    
    # Windows
    rd /s /q node_modules && del package-lock.json
    
  • 匹配项目指定的Node.js版本:查看项目package.json中的engines字段,确认要求的Node.js版本(比如14.x/16.x),用版本管理工具(nvm/n)切换对应版本:
    # 示例:用nvm切换到Node.js 16
    nvm install 16
    nvm use 16
    
  • 重新安装依赖(不要加--force):
    npm install
    
  • 处理剩余漏洞:执行npm audit查看详细报告,区分直接依赖和间接依赖。如果是间接依赖的漏洞,可通过package.json的overrides字段强制升级子依赖:
    "overrides": {
      "存在漏洞的依赖包名": "安全版本号"
    }
    
    之后重新执行npm install。

3. 解决[DEP0111]弃用警告

该警告源于使用了Node.js已弃用的API,通常是旧依赖导致:

  • 根据警告提示找到对应的模块,在package.json中更新该依赖至最新兼容版本,再重新安装。
  • 确认Ionic与Angular版本匹配:比如Ionic 5对应Angular 10-13,Ionic 6对应Angular 12-14,版本不匹配也会引发此类警告和启动失败。

4. 排查启动失败细节

如果上述步骤后仍无法启动,执行 verbose 模式查看完整日志:

ionic serve --verbose

根据日志中的具体报错(如模块缺失、配置错误)定位问题并修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:10:07