我目前有一个基于Gatsby-Ghost-Starter项目的 Gatsby项目。由于某种原因,Ghost 模式不再在 Gatsby 中生成,我似乎无法弄清楚原因。结果,我收到以下错误:
您的 GraphQL 查询中有一个错误:
无法在类型“GhostSettings”上查询字段“图标”。
如果您不希望在“GhostSettings”类型上存在“图标”,则很可能是拼写错误。但是,如果您希望“图标”存在,则有几种常见问题的解决方案:
- 如果您在 gatsby-node.js/gatsby-config.js 中添加了新数据源和/或更改了某些内容,请尝试重新启动您的开发服务器
- 该字段可能可以在另一个子字段中访问,请尝试在 GraphiQL 中查询并使用 GraphiQL 资源管理器查看您可以查询哪些字段以及它们具有什么形状
- 您希望有选择地使用您的字段“图标”,现在它没有在任何地方使用。因此 Gatsby 无法推断类型并将其添加到 GraphQL 模式中。一个快速的解决方法是在该字段中添加至少一个条目(“虚拟内容”)
如果您想使用可选字段,建议显式键入您的 GraphQL 架构。这样您就不必添加提到的“虚拟内容”。访问我们的文档以了解如何为“GhostSettings”定义架构: https ://www.gatsbyjs.org/docs/schema-customization/#creating-type-definitions
对于使用与 Ghost 模式相关的任何内容的每个页面和查询字段,基本上都会重复此错误消息。我打开了 GraphiQL 资源管理器,看看我是否可以访问那里的字段,它表明没有可用的模式(如此处的屏幕截图所示)。我尝试回滚到以前的提交,删除 .cache 和 node_modules,更新所有包,然后重新克隆 repo 无济于事。
我的最新提交能够在生产环境中毫无问题地编译,所以我认为这是我机器上的某种错误配置......环境变量都是相同的,我尝试使用生产 Ghost 服务器作为我的“ghost-source” " 在我的本地机器上(因为我知道如果生产构建成功编译它就可以工作),但没有任何改变。我已经坚持了好几天了,甚至不知道如何调试现在发生的事情。任何建议/见解将不胜感激。