当咱们在 npm install
安装项目依赖的时候,常常看到下图提示的漏洞警告。node
咱们看上图的提示说可使用 npm audit fix
来解决问题,那么 npm audit
究竟是干什么的呢?为何能够经过 npm audit fix
能够解决问题。让咱们赶忙去 npm
的官网去查看一波。npm
官网介绍:json
npm audit
容许开发人员分析复杂的代码,并查明特定的漏洞和缺陷。bash
npm audit fix
检测项目依赖中的漏洞并自动安装须要更新的有漏洞的依赖,而没必要再本身进行跟踪和修复。ui
固然还有其余的一些命令:spa
# 只更新 package-lock.json, 不更新 node_modules
npm audit fix --package-lock-only
# 不更新开发依赖即 devDependencies
npm audit fix --only=prod
# 更新到最新的依赖, 而不是仅仅更新到兼容的依赖
npm audit fix --force
# 空运行一次审核修复,了解修复的做用, 而且以 json 的格式输出结果
npm audit fix --dry-run --json
复制代码
还有一些命令请自行查看文档。code
那么咱们知道了它是经过分析 package-lock.json
文件,继而扫描咱们的包还分析是否包含漏洞的,那么有没有办法不让他扫描呢?cdn
找到问题后,个人第一反应是能够不能够经过配置关闭这个分析功能呢(大佬第一反应多是怎么解决)。blog
经过查看文档咱们发现 npm audit
是能够经过配置来进行关闭的。那么咱们首先来看一下咱们的配置都有哪些,是经过哪一个配置来管理分析功能的。ci
# 执行下面的命令输出咱们的 npm config
npm config ls -l
复制代码
audit = true
这个属性控制的。
咱们还能够看到 audit-level = "low"
来控制漏洞的危险等级。
那么咱们就能够经过修改这些配置来到达关闭审计分析的功能。
# 将 audit 设置成 false 关闭分析功能
npm set audit false
# 设置分析漏洞危险等级,有4个选项: 'low(低)', 'moderate(中等)', 'high(高危)', 'critical(紧要)'
npm set audit-level high
复制代码
好了,世界清静了,不再会出现这些漏洞报告了~~~~
然而有的小伙伴就会担忧,个人项目有了漏洞,真的被攻击了(虽然我认为概率很小)怎么办?
那就只能老老实实的执行 npm audit fix
去修复了。
有的小伙伴又会说我执行完仍是没有修复,那是什么缘由呢?
npm audit fix
后仍是没有修复那是由于不是全部依赖均可以经过 npm
命令来更新解决漏洞。
好比有些包是 node-gyp
的第三方依赖包,这些不能经过 npm
命令来修改的,只能本身手动修复。
在 node_modules > node_gyp > package.json
中找到要更新的包,手动修改 package.json
中包的版本,修改到最新版本。而后运行 npm audit fix
便可。