关于npm audit fix

其实之前也遇到过,一直没注意,今天安装vuex,npm install vuex --save出现如下提醒

执行 npm audit fix

出于好奇,从npm官网上查阅了对于npm audit fix的相关介绍。 npm@6 的一大更新是新增了 npm audit 命令 , npm aduit 主要动作就是在 npm install 完成之后把需要检查的包的信息发送给一个官方接口, 再根据返回信息生成一个包含包名称、漏洞严重性、简介, 路径等的报告。 该命令会在项目中更新或者下载新的依赖包之后会自动运行,如果你在项目中使用了具有已知安全问题的依赖,就收到官方的警告通知。

ps. 一般不要直接运行 --force ,对于没能自动修复的问题,说明肯定出现了 SEMVER WARNING 之类的警告,这意味着推荐的修复版本存在让代码出问题的可能,主要发生在依赖包更改了 API 或者升级了大版本的情况下(semantic version major change)。这时候就需要格外的小心甚至需要改动一些自己的代码了。

其他一些具体命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 扫描项目漏洞把不安全的依赖项自动更新到兼容性版本
npm audit fix

# 在不修改 node_modules 的情况下执行 audit fix,仍然会更改 pkglock
npm audit fix --package-lock-only

# 跳过更新 devDependencies
npm audit fix --only=prod

# 强制执行 audit fix 安装最新的依赖项(toplevel)
npm audit fix --force

# 单纯的获取 audit fix 会做的事,并以 json 格式输出。
npm audit fix --dry-run --json

# 获取详情
npm audit

# 以 JSON 格式打印报告
npm audit --json

至于如何关闭安全检查,可以采用以下方式:

  • 安装单个包关闭安全审查: npm install example-package-name --no-audit
  • 安装所有包关闭安全审查 - 运行 npm set audit false - 手动将 ~/.npmrc 配置文件中的 audit 修改为 false

:转载文章请注明出处,谢谢~