Gatsby.js配置gatsby-plugin-sitemap生成站点地图报错如何解决
Gatsby.js自定义gatsby-plugin-sitemap插件构建报错解决方案
问题背景
使用Gatsby.js开发站点时,需要自定义配置gatsby-plugin-sitemap插件生成站点地图,调整页面优先级,配置完成后执行项目构建出现报错。
问题复现
自定义配置代码(报错版本)
module.exports = { siteMetadata: { siteUrl: `https://www.mywebsite.com`, }, plugins: [ { resolve: `gatsby-source-filesystem`, options: { name: `images`, path: `${__dirname}/src/images/`, }, }, { resolve: 'gatsby-plugin-sitemap', options: { excludes: [], query: ` { site { siteMetadata { siteUrl } } allSitePage { nodes { path } } }`, serialize : ({site,allSitePage}) => allSitePage.nodes.map(node => { // this is line 32 return { url: `${site.siteMetadata.siteUrl}${node.path}`, changefreq: `never`, priority: 0.5, } }) }, }, 'gatsby-plugin-react-helmet', `gatsby-plugin-image`, `gatsby-plugin-sharp`, ], }
无自定义配置代码(可正常运行版本)
移除插件的自定义配置项后,项目构建运行正常,但默认所有页面优先级为0.7,无法满足自定义需求,配置如下:
module.exports = { siteMetadata: { siteUrl: `https://www.mywebsite.com`, }, plugins: [ { resolve: `gatsby-source-filesystem`, options: { name: `images`, path: `${__dirname}/src/images/`, }, }, 'gatsby-plugin-sitemap', 'gatsby-plugin-react-helmet', `gatsby-plugin-image`, `gatsby-plugin-sharp`, ], }
问题原因
上述自定义配置写法仅兼容3.3.0及以下版本的gatsby-plugin-sitemap插件,4.0及以上版本(本次使用版本为4.9.0)不支持该配置写法。
解决方案
将gatsby-plugin-sitemap插件版本从4.9.0降级至3.3.0,即可正常使用该自定义配置生成符合要求的站点地图。
内容的提问来源于stack exchange,提问作者othmane-be
相关产品推荐
相关产品推荐

