Error: Type with name "AuthorYaml" does not exists - gatsby-casper starter
Error: Type with name "AuthorYaml" does not exists - gatsby-casper starter
我正在尝试基于 gatsby-casper starter 构建一个 gatsby 网站,但我遇到了一个很难调试的与 graphql 模式相关的错误。我得到的错误是:
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
我用过
gatsby new my-gatsby-project https://github.com/scttcper/gatsby-casper
初始化项目。我无法弄清楚为什么会生成此错误。
嗯...那个首发 (gatsby-casper) has a reference to AuthorYaml
in the gatsby-node.js
at line 105:
allAuthorYaml {
edges {
node {
id
}
}
因此,如果您尚未定义该节点,您的 GraphQL 查询将无法 运行,因此代码已损坏。
拉多线程,allAuthorsYaml
是gatsby-transformer-yaml
, present in gatsby-config.js
(line 64创建的节点):
'gatsby-transformer-yaml',
并映射到同一 gatsby-config.js
文件的 line 11 中:
mapping: {
'MarkdownRemark.frontmatter.author': 'AuthorYaml',
},
这意味着您正在从您的 markdown frontmatter
中的作者字段创建一个 AuthorYaml
节点。
因此,如果您的降价 frontmatter
不包含作者参考,您的代码将会中断。通过在 markdown 文件中设置正确的作者,或者只是从 gatsby-node.js
中删除 allAuthorYaml
查询节点以及对它们的所有相关引用,可以很容易地修复它,例如:
// 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,
},
});
});
};
来自 line 188 来自 gatsby-node.js
个文件。
这同样适用于 authorTemplate
,因为您不会在上下文中传递任何作者,您的 authorTemplate
查询也会失败。
我正在尝试基于 gatsby-casper starter 构建一个 gatsby 网站,但我遇到了一个很难调试的与 graphql 模式相关的错误。我得到的错误是:
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
我用过
gatsby new my-gatsby-project https://github.com/scttcper/gatsby-casper
初始化项目。我无法弄清楚为什么会生成此错误。
嗯...那个首发 (gatsby-casper) has a reference to AuthorYaml
in the gatsby-node.js
at line 105:
allAuthorYaml {
edges {
node {
id
}
}
因此,如果您尚未定义该节点,您的 GraphQL 查询将无法 运行,因此代码已损坏。
拉多线程,allAuthorsYaml
是gatsby-transformer-yaml
, present in gatsby-config.js
(line 64创建的节点):
'gatsby-transformer-yaml',
并映射到同一 gatsby-config.js
文件的 line 11 中:
mapping: {
'MarkdownRemark.frontmatter.author': 'AuthorYaml',
},
这意味着您正在从您的 markdown frontmatter
中的作者字段创建一个 AuthorYaml
节点。
因此,如果您的降价 frontmatter
不包含作者参考,您的代码将会中断。通过在 markdown 文件中设置正确的作者,或者只是从 gatsby-node.js
中删除 allAuthorYaml
查询节点以及对它们的所有相关引用,可以很容易地修复它,例如:
// 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,
},
});
});
};
来自 line 188 来自 gatsby-node.js
个文件。
这同样适用于 authorTemplate
,因为您不会在上下文中传递任何作者,您的 authorTemplate
查询也会失败。