4

我有一个我开发的 npm 模块。我想知道我公司组织存储库中的不同项目正在使用该模块的哪个版本。有没有办法搜索模块的特定版本?

例如我最新版本的模块是"5.x.x". 我想找到所有不是"^5.x.x".

我尝试搜索,filename:package.json my-module但这给了我太多结果,其中大多数是最新版本("^5.x.x")。

也许还有其他方法可以实现它,而不是 Github 搜索?

编辑

  • 组织存储库很大,不可能将其全部克隆到磁盘上。
  • 在我们的组织中,我们有一个解决方案,它使用编码(一种管理整个组织的所有依赖项的服务,它公开了 REST)来解决这个问题。我正在寻找无需编码(太多)即可轻松实现的东西。
4

2 回答 2

1

鉴于对 GitHub 搜索的限制,您不太可能在 GitHub 界面中轻松执行此操作。

如果您将所有存储库都克隆到一个目录中,并且您使用的是类 UNIX 操作系统,则可以使用grep(或进行各种编程搜索):

grep '"my-module": ' */package.json | grep -v '"\^5\.'

以上假设条目以数字开头,^而不是~数字。根据需要进行修改。在你的情况下,它可能没问题。如果不是,它将显示一些版本 5 实例,这比显示早期实例要好。

于 2020-11-28T17:16:15.350 回答
1

您可以在 Bash 中使用findgrep命令:

$ cd path/to/your/repo
$ find . -name package.json | xargs grep '"my_module":'

此命令列出存储库中所有 package.json 文件中包含您的模块的所有行。如果这产生了太多的结果,你可以grep更多,例如:

$ find . -name package.json | xargs grep '"my_module":' | grep -v '\^5\.'

其中不包括任何提及您的模块的主要版本号为 5 的行。

于 2020-11-28T16:49:20.647 回答