npm审计修复
旨在自动升级/修复npm包中的漏洞。然而,我还没有发现它到底是如何修复这些漏洞的。
我假设npm审计修复
会将依赖项和依赖项的依赖项升级到软件包的semver定义允许的最新版本-实际上与rmpackage-lock.json;npm install
相同。然而npm审计修复
在锁文件删除重新安装后仍然执行许多更改。
< code>npm audit fix到底是做什么的?例如,它安装的依赖项版本是否比相应的< code>package.json所允许的版本更新(但仍然是永远兼容的)?
从NPM的站点上的审计命令:
npm 审核修复
在后台运行成熟的 npm 安装
默认情况下,审计修补程序似乎只进行永远兼容的升级。文件前面列出了:
有审计修复安装Semver主要更新到顶级依赖项,而不仅仅是Semver兼容的:
$ npm audit fix --force
至于锁文件,每次运行更改< code>package.json的命令时都会重新生成。在这里的回答和官方文档中有更多的信息。
在我的理解中,不仅是“升级”,有时还要降级以安装解决问题的稳定版本,有时这些问题出现在较新版本中,这些版本可能会引入错误或根本不与以前的软件包的 API 等匹配。
E、 g在我的例子中,例如npm安装有升级到5.0.0的反应脚本,该脚本有一些问题,并且在运行之后:
npm audit fix --force
强制标志的作用是:解决所有问题(包括重大更改),运行:npm audit fix - force
它安装了3.0.1并带有以下消息:
npm WARN audit Updating react-scripts to 3.0.1,which is a SemVer major change.
因此,它会升级到该软件包的稳定版本,以解决问题。
最重要的是,虽然docs声明“正在运行npm install under the hood ”,但不是指安装最新版本的依赖项,而是也可以用来检查npm ci发生了什么,“npm install”和“npm ci”之间有什么区别?