执行npm audit fix后npm i出现大量WARN警告如何解决
问题原因
npm audit fix 会自动在语义化版本规则允许的范围内升级项目依赖,直接修改package-lock.json里锁定的依赖版本。你之前没碰到这类警告,就是因为旧锁文件固定的依赖版本不会触发这些提示,命令跑完后部分依赖被升级到了带废弃提示、或者peer依赖声明不匹配的版本,装包时自然会刷出大量WARN。
npm的WARN级别日志根本不是报错,不会阻断依赖安装,也大概率不会直接导致项目跑不起来,你碰到的这类警告基本就两种:
- 部分深层嵌套的依赖本身已经被作者标记为废弃,或者用了npm新版本不推荐的旧写法
- 上下游依赖之间声明的peer依赖版本范围没有完全对齐
解决步骤
- 先清理被改乱的本地依赖环境:删掉项目根目录下的
node_modules文件夹,以及被npm audit fix改动过的package-lock.json文件。 - 如果项目提交过Git记录,直接把
package-lock.json回退到跑npm audit fix之前的版本,再重新执行npm i装依赖,就能直接回到之前没警告的正常状态。 - 要是没有可回退的版本记录,就等
npm i跑完,直接启动项目测核心功能。只要功能运行正常,这些警告完全可以直接忽略——大部分警告是嵌套了好几层的上游依赖带的,你作为项目使用者根本改不了,硬升所有依赖消警告反而容易搞出版本兼容问题,把项目弄崩。 - 后续别不加确认就直接跑
npm audit fix,尤其别加--force参数强制执行。真要修安全漏洞,先看audit输出的问题对应哪个依赖,手动指定版本升级,升完立刻测功能,确认没问题再提交锁文件。
内容的提问来源于stack exchange,提问作者Ramboski
相关产品推荐
相关产品推荐

