NativeScript 8.0.0项目npm漏洞修复时高危数量反复跳转问题求解
漏洞修复方案
该问题本质是@nativescript/webpack@5.0.0依赖的@pmmmwh/react-refresh-webpack-plugin版本<=0.5.0-rc.6,间接引入了存在高危漏洞的ansi-html包。npm audit fix --force会强制将@nativescript/webpack降级到4.1.0,触发更多版本不兼容漏洞,所以会出现漏洞数量来回跳转的情况。
可选择以下任意方案修复:
方案1:使用npm overrides强制替换依赖(推荐)
适合npm版本 >= 8.3.0的场景,无需改动核心依赖版本,也不会引发兼容问题。
- 在项目根目录的
package.json中新增overrides配置:
{ "name": "你的项目名称", "dependencies": { // 保留原有依赖配置 }, "overrides": { "ansi-html": "^0.0.8" } }
- 删除项目下的
node_modules文件夹和package-lock.json文件 - 重新执行
npm install,安装完成后执行npm audit即可确认漏洞已修复
方案2:使用yarn resolutions处理
若使用yarn作为包管理工具,使用resolutions字段指定安全版本即可:
- 在
package.json中新增配置:
{ "resolutions": { "ansi-html": "^0.0.8" } }
- 删除
node_modules文件夹和yarn.lock文件,重新执行yarn install
方案3:降级@nativescript/webpack到4.x版本
如果项目未用到@nativescript/webpack@5.x专属特性,可主动降级到无依赖漏洞的4.1.0版本:
- 执行安装命令:
npm install @nativescript/webpack@4.1.0 --save-dev
- 安装完成后测试项目打包、热更新等功能是否正常,避免出现兼容问题
方案4:顶层安装无漏洞依赖
npm会优先使用项目顶层安装的依赖版本,可直接在开发依赖中安装无漏洞的插件版本覆盖子依赖:
npm install @pmmmwh/react-refresh-webpack-plugin@^0.5.10 --save-dev
安装完成后执行npm audit检查漏洞即可。
内容的提问来源于stack exchange,提问作者luke1110
相关产品推荐
相关产品推荐

