新建React Native项目后npm audit检测出9个漏洞,如何修复?
修复React Native项目中的npm安全漏洞
先帮你梳理下当前的漏洞情况:1个高风险的ws包拒绝服务漏洞,以及多个低风险的deep-extend原型污染漏洞,都是项目深层依赖引发的问题,下面是具体的修复方案:
1. 强制升级有漏洞的间接依赖(推荐方案)
这些漏洞都来自项目的嵌套依赖,无法直接通过npm install单独升级,我们可以用npm的overrides功能(npm 8及以上版本支持)或者Yarn的resolutions来强制指定安全版本:
处理ws高风险漏洞
在你的package.json根节点添加以下配置,强制将ws升级到符合安全要求的版本(比如3.3.1,或满足>=3.3.1的最新兼容版):
"overrides": { "ws": "3.3.1" }
处理deep-extend低风险漏洞
同样在overrides中加入deep-extend的安全版本配置,合并后你的配置会是这样:
"overrides": { "ws": "3.3.1", "deep-extend": "0.5.1" }
如果你用的是Yarn,把overrides替换成resolutions字段即可。
配置完成后,运行命令重新安装依赖:
npm install
2. 升级核心依赖(备选方案)
如果强制覆盖依赖后仍有问题,或者你更倾向于通过升级核心依赖从根源解决,可以尝试:
- 升级React Native到最新稳定版:
npm install react-native@latest - 升级jest-expo到对应最新兼容版(若你使用Expo框架):
npm install jest-expo@latest
新版本的核心依赖通常会同步更新内部子依赖,自然修复这些安全隐患。
3. 验证修复效果
完成操作后,运行以下命令确认漏洞是否清除:
npm audit
如果输出显示found 0 vulnerabilities,就说明修复成功了。
内容的提问来源于stack exchange,提问作者Moni C
相关产品推荐
相关产品推荐

