npm 了解节点模块

ulmd4ohb  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(167)

如何使用节点模块?

tldr;如何查看已安装的节点模块,以及如何知道要安装的节点模块以及要查找的节点模块
例如,如果我使用npm i googleapis,它会下载Googles API的节点模块,但是我如何浏览该模块并找出对我有用的内容呢?为了消除问题中的任何歧义,我将使用此用例。
我正在开发一个Discord机器人,我想在其中一个命令中添加统计信息。下面是Google提供的代码:

<script src="https://apis.google.com/js/api.js"></script>
<script>
  /**
   * Sample JavaScript code for youtube.channels.list
   * See instructions for running APIs Explorer code samples locally:
   * https://developers.google.com/explorer-help/code-samples#javascript
   */

  function authenticate() {
    return gapi.auth2.getAuthInstance()
        .signIn({scope: "https://www.googleapis.com/auth/youtube.readonly"})
        .then(function() { console.log("Sign-in successful"); },
              function(err) { console.error("Error signing in", err); });
  }
  function loadClient() {
    gapi.client.setApiKey("YOUR_API_KEY");
    return gapi.client.load("https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest")
        .then(function() { console.log("GAPI client loaded for API"); },
              function(err) { console.error("Error loading GAPI client for API", err); });
  }
  // Make sure the client is loaded and sign-in is complete before calling this method.
  function execute() {
    return gapi.client.youtube.channels.list({
      "part": [
        "snippet,contentDetails,statistics"
      ],
      "id": [
        "UC_x5XG1OV2P6uZZ5FSM9Ttw"
      ]
    })
        .then(function(response) {
                // Handle the results here (response.result has the parsed body).
                console.log("Response", response);
              },
              function(err) { console.error("Execute error", err); });
  }
  gapi.load("client:auth2", function() {
    gapi.auth2.init({client_id: "YOUR_CLIENT_ID"});
  });
</script>
<button onclick="authenticate().then(loadClient)">authorize and load</button>
<button onclick="execute()">execute</button>

现在Google提供了一个受支持的库,这意味着我可以替换外部脚本标记,并从节点包导入,特别是我需要的部分。
因此,我需要导入或请求任何允许我访问的内容,例如:
gapi.auth2.getAuthInstance
gapi.client.setApiKey
gapi.client.youtube.channels.list
对于刚接触nodejs的人来说,我如何轻松地查看节点包并找到我需要和可以使用的东西,而不是从每一个文档中复制和粘贴并希望它能工作呢?

编辑1

我认为我对google apis案例的使用偏离了问题的方向,改变了我所问问题的范围,所以我会尽我所能纠正。
应该假设软件包上没有文档,不管它是写得很差,根本不存在,还是在时间敏感的开发过程中文档被关闭了很长一段时间。
在这一点上,是否有任何可能的方法来查看node_modules文件夹,需要处理的特定包,并找出发生了什么?是否有任何方法来查看包的结构,并认识到“嗯,最有可能我需要的是在这个文件夹或文件中”

qhhrdooz

qhhrdooz1#

这就是文档的作用。当有人为一个包编写API时;为了让消费者更清楚地了解情况,他应该充分地记录导出的函数。
获取节点程序包文档的最佳方法是在www.npmjs.com中搜索该程序包。
对于google api,你可以到here页面去看“入门”和一些例子,你也可以到here去看这个包的完整详细的api。

回答编辑#1

好吧,在这种情况下,这可能是一个困难的任务,取决于如何结构和组织的包。
由于我们讨论的是nodejs,因此您应该查找package.json文件,并搜索主文件"main": "<PATH HERE>"的路径。
然后,您可以转到该主文件,并尝试找到导出的确切内容。您可以搜索module.exportsexport关键字。
显式导出的所有内容都旨在用作API。
我不熟悉任何其他方法,除了深入包的文件,并确定究竟是什么正在导出。

相关问题