npm audit

🌙
手机阅读
本文目录结构

npm audit 功能

运行安全审核,扫描您的项目中的漏洞,仅显示详细信息,而无需修复任何问题:

可以通过加别的名来来做额外的操作,比如去自动安装兼容的最新版本等;

注意,这个操作需要您 npm 链接的是官方源,如果设置非官方的源,会看到下面的错误

https://a.axihe.com/img/api-npm/mintty_IC308i5sfI.png

切回官方源,就可以正常使用了

https://a.axihe.com/img/api-npm/mintty_jN0DeXgDb7.png

npm audit 使用

npm audit [--json|--parseable|--audit-level=(low|moderate|high|critical)]
npm audit fix [--force|--package-lock-only|--dry-run]

common options: [--production] [--only=(dev|prod)]

npm audit 例子

扫描您的项目中的漏洞,并自动安装兼容的最新版本:

$ npm audit fix

运行时 audit fix 无需修改 node_modules,但仍会更新 pkglock:

$ npm audit fix --package-lock-only

跳过更新 devDependencies:

$ npm audit fix --only=prod

强制修复

已经 audit fix 安装了 semver-major 更新到顶级依赖项,而不仅仅是与 semver 兼容的依赖项:

$ npm audit fix --force

做一个预演

以得到一个什么样的想法 audit fix 就行了,还输出安装在 JSON 格式的信息:

$ npm audit fix --dry-run --json

扫描项目中的漏洞

$ npm audit

获取 JSON 格式的详细审核报告:

$ npm audit --json

以纯文本结果获取详细的审计报告,以制表符分隔,以便将来在脚本或命令行后处理中重用,例如,选择一些打印的列:

$ npm audit --parseable

要解析列,您可以使用例如 awk,仅打印其中的一些:

$ npm audit --parseable | awk -F $'\t' '{print $1,$4}'

仅在结果包含中等或更高级别的漏洞时,审核失败:

$ npm audit --audit-level=moderate

npm audit 命令说明

audit 命令将对项目中配置的依赖项的描述提交给默认注册表,并要求提供已知漏洞的报告。

返回的报告包含有关如何对这些信息采取行动的说明。

如果未发现漏洞,该命令将以 0 退出代码退出。

您还可以让 npm 通过运行来自动修复漏洞 npm audit fix

请注意,某些漏洞无法自动修复,需要手动干预或检查。 另请注意,由于 npm audit fix 在后台运行了完整功能 npm install, 因此适用于安装程序的所有配置也将适用于 npm install 因此类似的事情 npm audit fix --package-lock-only 将按预期工作。

默认情况下,如果发现任何漏洞,audit 命令将以非零代码退出。

在 CI 环境中,包含 --audit-level 参数以指定将导致命令失败的最低漏洞级别可能很有用。

此选项不过滤报告输出,它只是更改命令的失败阈值。

npm audit 显示的内容

npm_version
node_version

平台

node_env

您的 package-lock.json 或 npm-shrinkwrap.json 的净化版本

磨边

为了确保审核数据包中不包含潜在的敏感信息,某些依赖项可能会将其名称(有时是版本)替换为不透明的不可逆标识符。针对以下依赖项类型完成此操作:

  • 引用为非默认注册表配置的作用域的任何模块的名称都将被清除。(也就是说,您 npm login –scope=@ourscope 为此做了一个作用域。)
  • 所有 git 依赖项的名称和说明符均被清除。
  • 所有远程 tarball 依赖项的名称和说明符均被清除。
  • 所有本地目录和 tarball 依赖项的名称和说明符均被清除。

不可逆标识符是特定于会话的 UUID 的 sha256,并且将替换该值,以确保有效载荷内的一致值在两次运行之间是不同的。

npm audit 返回结果

npm audit 如果未发现漏洞,该命令将以 0 退出代码退出。

如果发现漏洞,则退出代码将取决于 audit-level 配置设置。

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了