更新NPM中的依赖项以解决漏洞

更新NPM中的依赖项以解决漏洞,npm,npm-install,dependabot,Npm,Npm Install,Dependabot,github中的My repo显示以下警报: 可信诺无法将ssri更新为非易受攻击的版本。由于以下相互冲突的依赖关系,可以安装的最新版本为6.0.1: 简洁的网页包-plugin@2.3.8需要通过ssri@^7.0.0cacache@13.0.1 webpack@4.46.0通过对的可传递依赖项需要ssri@^6.0.1 cacache@12.0.4 最早的固定版本是8.0.1 据我所知,我应该将package.json中的根包(更简洁的webpack插件)更新到一个更新的版本,但是如何确定能

github中的My repo显示以下警报:

可信诺无法将ssri更新为非易受攻击的版本。由于以下相互冲突的依赖关系,可以安装的最新版本为6.0.1:

简洁的网页包-plugin@2.3.8需要通过ssri@^7.0.0cacache@13.0.1

webpack@4.46.0通过对的可传递依赖项需要ssri@^6.0.1 cacache@12.0.4

最早的固定版本是8.0.1


据我所知,我应该将package.json中的根包(更简洁的webpack插件)更新到一个更新的版本,但是如何确定能够支持依赖项的非易受攻击版本(在本例中为ssri 8.0.1)的最低版本,因为我不想更新到太高的版本并冒破坏的风险。我正在考虑手动检查所有terser webpack插件的发布版本,但这样检查非常繁琐,似乎是错误的。有什么建议吗?

为了加快过程并节省安装每个版本及其相关依赖关系树的时间,我们可以使用
npm remote ls
()

首先获取可用版本的列表:

> npm view terser-webpack-plugin versions
[
  '1.0.0', '1.0.1', '1.0.2', '1.1.0', '1.2.0',
  ...
然后对当前版本之后的每个版本运行
npm remote ls
,并筛选相关依赖项,例如

> npm-remote-ls terser-webpack-plugin@3.0.0 | grep ' ssri@'
   ???  ?????? ssri@8.0.1
   ???  ???  ???  ?????? ssri@6.0.2
在这种情况下,更简洁的网页包-plugin@5.0.0是第一个只有固定版本的ssri(8.0.1),而5.1.0似乎根本不包括ssri,这可能是因为webpack不再依赖cacache

注意:
npm remote ls
用于显示树状结构的字符编码可能会出现问号。您也可以在PowerShell中使用
Select String
,但这会显示不同的(不正确的)字符