编译时出现graphQL错误

Posted

技术标签:

【中文标题】编译时出现graphQL错误【英文标题】:getting graphQL error when compiling 【发布时间】:2018-06-18 00:40:33 【问题描述】:

我正在阅读本教程:https://www.gatsbyjs.org/blog/2017-07-19-creating-a-blog-with-gatsby/

我已完成所有操作,但出现 graphQL 编译错误:

GraphQL Error There was an error while compiling your site's GraphQL queries.
Invariant Violation: GraphQLParser: Unknown argument `formatString`. 
Source: document `BlogPostByPath` file: `GraphQL request`.

这是我的查询:

export const pageQuery = graphql`
  query BlogPostByPath($path: String!) 
    markdownRemark(frontmatter:  path:  eq: $path  ) 
      html
      frontmatter 
        date(formatString: "MMMM DD, YYYY")
        path
        title
      
    
  
`
;

编译错误指向日期对象,当我删除它时,日期编译错误消失。我的日期对象有什么问题?

【问题讨论】:

可能是日期格式问题,尝试使用其中之一:github.com/gatsbyjs/gatsby/blob/… 【参考方案1】:

您的日期对象date(formatString: "MMMM DD, YYYY") 本身没有问题。

相反,请检查您的降价文件并确保您在 frontmatter 中使用了正确的格式。我认为这就是您的问题的根源。

示例:

这样的日期(一年中没有第 77 个月)会抛出你得到的错误:

---
path: "/hello-world"
date: "2017-77-12"
title: "My First Gatsby Post"
---

类似地,像这样的日期(一个月没有第 88 天)也会抛出你得到的错误:

---
path: "/hello-world"
date: "2017-07-88"
title: "My First Gatsby Post"
---

这些是极端的例子,但我想你现在已经明白我的意思了,所以试着修正你的 frontmatter 日期,让月、日和年在日历上有意义。

【讨论】:

【参考方案2】:

我也有类似的问题;按照建议修复了我的所有日​​期,但错误仍然存​​在。在测试的时候,我在 Powershell 中运行:

gatsby develop

我停止使用 CTRL-CY 取消,重新启动 gatsby 开发服务器,然后查询开始工作。在开发模式下,gatsby 会缓存某些内容,但它不会获取我文件的前端更改。

【讨论】:

我遇到了同样的问题,但不是我过滤的内容 ($path) 出现了错误。这是日期错误的页面的不同子集(使用相同的字段名称)。确保使用 gatsby 的 ___graphql 工具中的日期字段的字符串查询来检查所有日期。您可以轻松查看所有日期节点【参考方案3】:

应该是“MMM”而不是“MMMM”。

【讨论】:

以上是关于编译时出现graphQL错误的主要内容,如果未能解决你的问题,请参考以下文章

Kali Linux中,make编译时出现错误怎么解决?

创建线程时出现编译时错误

在 Flutter 中构建 Streams 时出现编译时错误

编译过程时出现oracle错误

编译动态矩阵时出现file.exe错误

在编译c++代码时出现如下错误: 望速度解答,很急。。谢谢!