如何找到 Graphql 查询数据源?

How to find Graphql query datasource?

免责声明:我对这项技术还很陌生。

我有一个使用不同数据源的 Gatsby 网站。有没有办法了解页面上的特定 graphql 查询是否来自特定插件?

检查页面,开发者工具=>网络; 查看发送您网站的每个请求; 什么脚本发送请求,是不是你的? 分析每个请求的结果。 我认为这会有所帮助。

很可能您可以通过数据类型的命名来区分数据源。如果你转到 http://localhost:8000/___graphql 而 运行 左侧本地环境中的项目,你可以看到所有数据类型。数据类型通常以“所有+数据源”或“数据源名称”开头。在下图中,我的数据源是 Contentful,所有来自那里的数据都以“allContentful+内容名称”开头。

Gatsby 通过“源插件”(https://www.gatsbyjs.com/docs/how-to/plugins-and-themes/creating-a-source-plugin/#what-is-a-source-plugin) 用于填充 Gatsby 数据存储的底层 API 获取数据。这些源插件通常是您可以安装的 npm 包,但您也可以在 gatsby-node.js 中安装本地源插件。在后一种情况下,您应该阅读 gatsby-node.js 并查看它是否包含 sourceNodes 导出。

因此您需要检查 gatsby-config.js 那里定义了什么 plugins。该数组可以直接包含各个插件,也可以包含主题 (https://www.gatsbyjs.com/docs/themes/what-are-gatsby-themes/)。这些主题本身将有一个 gatsby-config.js 那么。

因此,有了这些知识,您就知道哪些源插件在您的站点中处于活动状态。他们经常命名他们的查询,例如gatsby-source-contentful 具有命名空间 allContentful。当您有 gatsby develop 运行.

时,您可以在 localhost:8000/___graphql 浏览这些查询