【问题标题】:How do you find out which NPM modules depend on yours?你如何找出哪些 NPM 模块依赖于你的?
【发布时间】:2013-09-18 18:22:27
【问题描述】:

很容易看到特定模块依赖于哪些模块,但我似乎无法找出如何查看哪些模块依赖于特定模块。有没有一种简单的方法可以做到这一点?如果是这样,有没有办法以编程方式做到这一点?

【问题讨论】:

  • 您是在 NPM 上谈论全局,还是针对您的特定应用程序?
  • 全球在 NPM 上。我想指定任何特定模块并确定其他模块依赖它。

标签: node.js module dependencies npm


【解决方案1】:

更新:注册表 API 已更改,可能会或可能不会让您直接与底层 CouchDB 数据库对话。幸运的是,在https://skimdb.npmjs.com/registry 上仍然提供了一个用于复制的公共镜像,您仍然可以向该镜像发送查询。使用方法:

https://skimdb.npmjs.com/registry/_design/app/_view/dependedUpon?group_level=3&startkey=%5B"socket.io"%5D&endkey=%5B"socket.io"%2C%7B%7D%5D&skip=0&limit=1000

为便于阅读,以下是示例中的查询字符串参数:

{ group_level: 3,
  startkey: '["socket.io"]',
  endkey: '["socket.io", {}]',
  skip: 0,
  limit: 1000 }

请注意,如上所述,这些是 CouchDB 请求的参数。官方 API 上似乎没有用于获取此数据的端点,但注册表存在一个问题,您可以关注 here


您最接近的可能是从 npm 注册表请求 JSON。例如,要获取依赖于 Socket.IO 的包,请向此链接发送 GET 请求:

http://registry.npmjs.org/-/_view/dependedUpon?group_level=3&startkey=%5B%22socket.io%22%5D&endkey=%5B%22socket.io%22%2C%7B%7D%5D&skip=0&limit=1000

【讨论】:

  • 完美。谢谢你。这正是我想要的。
  • 我无法让它与本地托管的 NPM 注册表一起使用。我回来{ "error" : "no such package available" }。如果你能解释 URL 参数,或者至少链接到描述它们的 API 文档,那就太棒了。
  • @BenBurns 是a CouchDB query
  • @Chev 有没有关于 npm 注册表 API 的文档?
  • @caesarsol 这实际上是一个 CouchDB 查询,它支持 npm 注册表。所以CouchDB API 文档就是您所追求的。
【解决方案2】:

您可以在 npmjs.com 上浏览它们,方法是转到诸如 https://www.npmjs.com/browse/depended/markdown-it 之类的 URL

【讨论】:

    【解决方案3】:

    最近还有 https://libraries.io/npm/socket.io 为您跟踪依赖项和依赖项。

    【讨论】:

    • 喜欢这个,因为它还跟踪 npm 没有的开发依赖关系!
    • 太棒了。它有一个 http API。
    【解决方案4】:

    dependedUpon 现在至少被这些工具所包裹:

    npm install -g npm-static-stats dependents-tree npm-get-dependents npm-dependents
    

    dependents-tree 看起来对于签出新包最有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 2012-01-28
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 2012-08-19
      • 2016-09-16
      相关资源
      最近更新 更多