查找提供弃用警告的包 - NPM

19

我安装了许多依赖项,当执行npm install时,我收到了npm warn警告,请更新到某个版本。如何找出导致此警告的软件包。


请查看https://dev59.com/LFsW5IYBdhLWcg3wOlHO#36341065。 - Harikrishnan
这是针对所有@Harikrishnan的建议。我特别想看到那个。 - Sibiraj
4个回答

18

npm outdated 只显示有更新版本可用的软件包,不考虑它们是否已被弃用。因此,它不会显示已不再获得更新的已弃用软件包(例如 request@hapi/joi)。

如果您使用的是 npm 版本 7 或更高版本,则应该有一个带有 lockfileVersion: 2package-lock.json 文件。这个锁定文件包含所有已安装软件包的弃用警告。

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

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

输出结果将如下所示:
node_modules/har-validator:
此库不再受支持。
node_modules/request: 请求已被弃用,请参见https://github.com/request/request/issues/3142。
node_modules/request-oauth/node_modules/uuid: 请升级至7或更高版本。较旧的版本在某些情况下可能会使用Math.random(),这是有问题的。有关详细信息,请参见https://v8.dev/blog/math-random。
node_modules/request/node_modules/uuid: 请升级至7或更高版本。较旧的版本在某些情况下可能会使用Math.random(),这是有问题的。有关详细信息,请参见https://v8.dev/blog/math-random。

2
如果返回的是在你的 package.json 中未声明的传递依赖项,则 npm explain <dependency> 将显示已声明的依赖项正在引入它们。 - ParkerM

1
问题:npm i 给出有关不推荐使用的子依赖项的警告。
解决方法:npm list --depth=3 >> result.txt,然后您可以在该文件中搜索不推荐使用的子软件包。

1
有一个软件包可以做到这一点。
npm install -g npm-deprecated-check
ndc 

0

打开你的终端并运行以下两个命令:

  1. cd
  2. npm outdated

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


7
弃用通知来自于子依赖项。npm outdated 不考虑子依赖项。更新直接依赖项可能会解决问题,也可能不会。 - fregante

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接