Gatsby 站点地图:GraphQLError:语法错误:预期名称,找到 <EOF>

Posted

技术标签:

【中文标题】Gatsby 站点地图:GraphQLError:语法错误:预期名称,找到 <EOF>【英文标题】:Gatsby sitemap: GraphQLError: Syntax Error: Expected Name, found <EOF> 【发布时间】:2021-11-10 03:44:49 【问题描述】:

我一直试图让 gatsby 站点地图插件工作一段时间,但我无法弄清楚我在这里做错了什么。首先我无法拉出site.siteMetadata.siteTitle,所以我必须用一个函数来设置它。现在,我无法将页面添加到站点地图。是的,我已经在 Graphiql 中多次测试过该查询,并且可以正常工作。

我收到以下错误,下面是我的站点地图配置(只是试图让页面暂时正常工作):

"gatsby-plugin-sitemap" threw an error while running the onPostBuild lifecycle:

Syntax Error: Expected Name, found <EOF>.

  40 |             output = _ref2.output, entryLimit = _ref2.entryLimit, query = _ref2.query, excludes =
_ref2.excludes, resolveSiteUrl = _ref2.resolveSiteUrl, resolvePagePath = _ref2.resolvePagePath,
resolvePages = _ref2.resolvePages, filterPages = _ref2.filterPages, serialize = _ref2.serialize;
  41 |             _context.next = 4;
> 42 |             return graphql(query);
     |                    ^
  43 |
  44 |           case 4:
  45 |             _yield$graphql = _context.sent;

File: node_modules/gatsby-plugin-sitemap/gatsby-node.js:42:20

      resolve: `gatsby-plugin-sitemap`,
      options: 
        query: `
          site 
          siteMetadata 
            siteUrl
          
        
        allSitePage 
          nodes 
            path
          
        
        allMarkdownRemark 
          edges 
            node 
              frontmatter 
                slug
              
            
          
        `,
        resolveSiteUrl: siteUrl,
        resolvePages: ( allSitePage: nodes: allPages ) => 
          return allPages.map(page => 
            return  ...page 
          )
        ,
        serialize: ( path ) => 
          return 
            url: path,
            priority: 0.7,
          ;
        ,
      ,
    ,

【问题讨论】:

【参考方案1】:

我认为您在查询末尾缺少


      resolve: `gatsby-plugin-sitemap`,
      options: 
        query: `
          site 
            siteMetadata 
              siteUrl
            
          
          allSitePage 
            nodes 
              path
            
          
          allMarkdownRemark 
            edges 
              node 
                frontmatter 
                  slug
                
              
            
          
        `,
        resolveSiteUrl: siteUrl,
        resolvePages: ( allSitePage: nodes: allPages ) => 
          return allPages.map(page => 
            return  ...page 
          )
        ,
        serialize: ( path ) => 
          return 
            url: path,
            priority: 0.7,
          ;
        ,
      ,
    ,

由于查询对象的格式不正确,它会抛出语法(&lt;EOF&gt;,文件结尾)异常。

其余的应该单独工作。

【讨论】:

以上是关于Gatsby 站点地图:GraphQLError:语法错误:预期名称,找到 <EOF>的主要内容,如果未能解决你的问题,请参考以下文章

gatsby-starter-blog 的站点地图

如何获取站点地图 Gatsby 的静态文件的更新/lastmod 值

使用 gatsby-plugin-sitemap 仅生成一页到站点地图

如何修复站点地图错误?

Gatsby:如何将多个上下文 ID 传递给单个查询?

使用 PostCSS 和 TailwindCSS 构建 Gatsby 站点时出错