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

Angular项目安装jsonwebtoken后出现高安全漏洞,npm audit无法修复的问题求助

Angular项目安装jsonwebtoken后出现高安全漏洞,npm audit无法修复的问题求助

嘿,我来帮你拆解下这个问题,其实这事儿跟jsonwebtoken本身没啥关系,先给你捋清楚来龙去脉:

首先,你看到的高安全漏洞是来自vite这个依赖(版本5.0.0-5.0.11),而它是被@angular-devkit/build-angular@17.1.0间接依赖的——安装jsonwebtoken只是触发了npm的审计检查,刚好把这个早就存在于项目里的漏洞揪出来了。而且这个漏洞只影响开发服务器环境,生产构建的代码不会受波及,这点先放宽心。

下面给你几个可行的处理方案,你可以根据自己的项目情况选:

  • 暂时忽略漏洞(适合开发环境安全可控的场景)
    因为漏洞仅作用于开发阶段的服务器,如果你团队的开发环境是内网或者信任的环境,可以先不做破坏性修复。执行npm audit fix(别加--force),它会自动修复那些不需要降级依赖的漏洞,而这个需要降级Angular构建工具的漏洞会被跳过。要是不想每次npm install都看到这个提示,还能在package.json里加个脚本:

    "scripts": {
      "audit": "npm audit --production"
    }
    

    之后用npm run audit只会检查生产依赖的漏洞,不会再提示开发依赖的问题。

  • 等待官方修复(最稳妥的长期方案)
    Angular团队已经跟进这个问题了,vite在5.0.12版本已经修复了这个漏洞,Angular的构建工具后续版本会自动升级依赖的vite版本。你可以关注Angular CLI的更新通知,等新版本发布后执行npm update @angular-devkit/build-angular就能彻底解决这个问题。

  • 手动强制升级vite版本(快速解决的折中方案)
    利用npm的overrides功能(npm 8.3及以上支持),在package.json里强制指定vite为修复后的版本:

    "overrides": {
      "vite": "5.0.12"
    }
    

    然后执行npm install,这样就能让@angular-devkit/build-angular使用修复后的vite版本,同时不用降级Angular的核心依赖。不过记得安装后测试下项目的开发服务和生产构建是否正常,虽然小版本升级兼容性问题极小,但还是要谨慎验证。

  • 降级到Angular 15(临时应急方案)
    如果你现在必须立刻消除漏洞提示,且项目能兼容Angular 15的话,可以像你测试的那样降级到15.2.10,但这相当于放弃了Angular 16/17的新特性,只适合短期过渡用,不推荐长期保留这个方案。

备注:内容来源于stack exchange,提问作者Collina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 09:42:59