Gatsby v3中GraphiQL查询报错:Cannot query field "allMdx" on type "Query"
适配Gatsby v3的allMdx报错修复方案
核心原因:
gatsby-source-filesystem仅负责读取本地文件系统的内容,不会自动生成MDX相关的GraphQL查询节点,该节点由gatsby-plugin-mdx插件生成,且插件版本需要和Gatsby v3严格匹配。
具体操作步骤如下:
- 安装匹配版本的依赖包
Gatsby v3仅兼容v2.x版本的gatsby-plugin-mdx,以及v1.x版本的MDX核心依赖,执行以下命令安装:npm install gatsby-plugin-mdx@2 @mdx-js/mdx@1 @mdx-js/react@1 - 更新站点配置
打开项目根目录的gatsby-config.js文件,确保已经同时注册gatsby-source-filesystem和gatsby-plugin-mdx插件,参考配置如下:
module.exports = { plugins: [ // 配置读取本地MDX文件的源 { resolve: `gatsby-source-filesystem`, options: { name: `mdx-content`, path: `${__dirname}/src/mdx/`, // 替换为你实际存放.mdx文件的目录路径 }, }, // 注册MDX解析插件 `gatsby-plugin-mdx`, ], }
- 清理缓存重启开发服务
Gatsby会缓存历史生成的GraphQL节点,修改配置后需要先清理缓存再启动服务,执行命令:gatsby clean && gatsby develop
操作完成后重新访问GraphiQL界面,allMdx字段即可正常使用,查询返回的结构和官方教程内容完全匹配。
内容的提问来源于stack exchange,提问作者Alamin
相关产品推荐
相关产品推荐

