首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:不存在名为"AuthorYaml“的类型-

错误:不存在名为"AuthorYaml“的类型-
EN

Stack Overflow用户
提问于 2021-08-23 06:20:55
回答 1查看 161关注 0票数 2

我正在尝试构建一个基于的盖茨比网站,但我很难调试与graphql模式相关的错误。我得到的错误是:

代码语言:javascript
复制
Error: Type with name "AuthorYaml" does not exists

- TypeStorage.js:44 SchemaComposer.get
[Physicc-blog]/[graphql-compose]/lib/TypeStorage.js:44:13

- TypeMapper.js:585 ThunkComposer._thunk
[Physicc-blog]/[graphql-compose]/lib/TypeMapper.js:585:34

- ThunkComposer.js:20 ThunkComposer.get ofType [as ofType]
[Physicc-blog]/[graphql-compose]/lib/ThunkComposer.js:20:34

- ThunkComposer.js:46 ThunkComposer.getType
[Physicc-blog]/[graphql-compose]/lib/ThunkComposer.js:46:17

- ListComposer.js:22 ListComposer.getType
[Physicc-blog]/[graphql-compose]/lib/ListComposer.js:22:49

- ObjectTypeComposer.js:348 ObjectTypeComposer.getFieldConfig
[Physicc-blog]/[graphql-compose]/lib/ObjectTypeComposer.js:348:18

- index.js:220 forEach
[Physicc-blog]/[gatsby]/src/schema/extensions/index.js:220:48

- Array.forEach

- index.js:215 forEach
[Physicc-blog]/[gatsby]/src/schema/extensions/index.js:215:8

- Array.forEach

- index.js:211 processFieldExtensions
[Physicc-blog]/[gatsby]/src/schema/extensions/index.js:211:32

- schema.js:226 processTypeComposer
[Physicc-blog]/[gatsby]/src/schema/schema.js:226:11

- schema.js:200 map
[Physicc-blog]/[gatsby]/src/schema/schema.js:200:7

- Array.map

- schema.js:199 updateSchemaComposer
[Physicc-blog]/[gatsby]/src/schema/schema.js:199:50

- schema.js:64 buildSchema
[Physicc-blog]/[gatsby]/src/schema/schema.js:64:3

我用过

代码语言:javascript
复制
gatsby new my-gatsby-project https://github.com/scttcper/gatsby-casper

若要初始化项目,请执行以下操作。我不知道为什么会产生这个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-23 06:43:48

好吧..。该启动器(盖茨比-卡斯珀)在gatsby-node.js at 第105行中引用了AuthorYaml

代码语言:javascript
复制
  allAuthorYaml {
    edges {
      node {
        id
      }
    }

因此,如果您没有定义该节点,那么您的GraphQL查询将无法运行,因此代码正在中断。

allAuthorsYaml是一个由gatsby-transformer-yaml创建的节点,在gatsby-config.js (第64项)中显示:

代码语言:javascript
复制
'gatsby-transformer-yaml',

并在同一个第11行文件的gatsby-config.js中映射:

代码语言:javascript
复制
  mapping: {
    'MarkdownRemark.frontmatter.author': 'AuthorYaml',
  },

这意味着您要从标记frontmatter中的author字段创建一个frontmatter节点。

因此,如果您的减价frontmatter不包含作者引用,您的代码就会中断。可以通过在标记文件中设置适当的作者,或者仅通过从allAuthorYaml查询节点中删除gatsby-node.js和对它们的所有相关引用来轻松地修复它,例如:

代码语言:javascript
复制
  // Create author pages
  const authorTemplate = path.resolve('./src/templates/author.tsx');
  result.data.allAuthorYaml.edges.forEach(edge => {
    createPage({
      path: `/author/${_.kebabCase(edge.node.id)}/`,
      component: authorTemplate,
      context: {
        author: edge.node.id,
      },
    });
  });
};

来自第188行gatsby-node.js文件。

authorTemplate也是如此,因为您不会在上下文中传递任何作者,您的authorTemplate查询也会失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68888062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档