编译时出现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-C 和 Y
取消,重新启动 gatsby 开发服务器,然后查询开始工作。在开发模式下,gatsby 会缓存某些内容,但它不会获取我文件的前端更改。
【讨论】:
我遇到了同样的问题,但不是我过滤的内容 ($path) 出现了错误。这是日期错误的页面的不同子集(使用相同的字段名称)。确保使用 gatsby 的 ___graphql 工具中的日期字段的字符串查询来检查所有日期。您可以轻松查看所有日期节点【参考方案3】:应该是“MMM”而不是“MMMM”。
【讨论】:
以上是关于编译时出现graphQL错误的主要内容,如果未能解决你的问题,请参考以下文章