Angular项目NPM Audit正则表达式拒绝服务中度错误如何解决?
修复方案
- 先区分漏洞所属依赖类型
运行npm audit --production仅检查生产环境依赖的漏洞,如果没有返回报错,说明所有漏洞都来自devDependencies开发依赖。这类依赖仅在本地开发、打包阶段使用,不会上线到生产环境,对应的正则表达式拒绝服务漏洞不会对线上业务造成任何影响,可直接忽略。 - 强制覆盖有漏洞的传递依赖版本
如果漏洞属于生产依赖,或你需要消除所有audit报错,可以在package.json中新增overrides字段,强制指定存在漏洞的依赖包使用安全版本:
注:overrides字段仅支持npm v8.3.0及以上版本,如果你使用的npm版本较低,可先升级npm或使用{ "name": "你的项目名", "version": "x.x.x", // 新增以下配置 "overrides": { "<有漏洞的包名>": "^对应的安全版本号" } }npm-force-resolutions包实现相同效果
配置完成后删除项目根目录的node_modules文件夹和package-lock.json文件,重新执行npm install安装依赖即可修复漏洞。 - 临时关闭audit检查
如果不需要处理漏洞,仅想屏蔽报错,可在运行npm相关命令时加上--audit false参数,也可以在项目根目录新建.npmrc文件,写入audit=false全局关闭当前项目的audit检查。
额外提示:Angular官方脚手架默认生成的依赖偶尔会存在这类传递依赖漏洞,绝大多数都是开发依赖带来的,不会影响实际功能使用,不需要耗费大量时间排查。
内容的提问来源于stack exchange,提问作者Karen
相关产品推荐
相关产品推荐

