查找提供折旧警告的软件包 - NPM

Sib*_*raj 6 deprecated node.js npm npm-install

我安装了很多依赖项。当npm install我被npm warn弃用时,请更新到某个版本。如何查找哪个包产生此警告。

abr*_*ain 20

npm outdated仅显示具有较新版本的软件包,无论其弃用状态如何。因此,它不会显示不再获得更新的已弃用软件包(例如request@hapi/joi)。

如果您使用版本npm7 或更高版本,您应该有一个带有lockfileVersion: 2. 此锁定文件包含所有已安装软件包的弃用警告。

您可以使用jq查找所有具有弃用警告的软件包:

jq -r '.packages | to_entries[] | select(.value.deprecated != null) | "\(.key):\n\(.value.deprecated)\n"' package-lock.json 
Run Code Online (Sandbox Code Playgroud)

输出将如下所示:

node_modules/har-validator:
不再支持该库

节点模块/请求:
请求已被弃用,请参阅 https://github.com/request/request/issues/3142

节点模块/请求-oauth/节点模块/uuid:
请升级到版本 7 或更高版本。旧版本在某些情况下可能会使用 Math.random(),这已知是有问题的。有关详细信息,请参阅 https://v8.dev/blog/math-random。

节点模块/请求/节点模块/uuid:
请升级到版本 7 或更高版本。旧版本在某些情况下可能会使用 Math.random(),这已知是有问题的。有关详细信息,请参阅 https://v8.dev/blog/math-random。

  • 如果这返回未在 package.json 中声明的传递依赖项,则 `npm treat <dependency>` 将显示声明的依赖项正在引入它们。 (2认同)

小智 1

打开终端并运行这两个命令:

  1. cd
  2. npm outdated

它应该返回需要升级的过时软件包的列表。

  • 已弃用的通知来自子依赖项。`npm outdated` 不考虑子依赖关系。更新直接依赖项可能会解决问题,也可能不会。 (8认同)