Kev*_*n S 5 file graphql gatsby
我正在尝试访问 Gatsby 中“文件”GraphQL 查询返回的文本文件的内容(通过 gatsby-source-filesystem 插件)。该查询肯定返回一个文件节点。问题是我期望内部>内容字段包含文件的内容,但事实并非如此;它始终为空。下面是使用 Gatsby 的 GraphiQL 浏览器获得的示例查询和结果。问题是(1)我做错了什么,以及(2)我应该怎么做才能实现访问文件内容的意图?
询问
query MyQuery {
file(ext: {eq: ".lean"}, name: {eq: "test"}) {
name
relativePath
size
internal {
content
mediaType
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果
{
"data": {
"file": {
"name": "test",
"relativePath": "test.lean",
"size": 10,
"internal": {
"content": null,
"mediaType": "application/octet-stream"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
从结果中可以看到,该文件不是空的(该文件内部有一小行 Lean Prover 代码),但internal>content 字段的值仍然为空。我显然做错了什么,但经过一个小时的尝试找出错误后,我认为其他人也可能会从快速答案中受益。感谢您阐明我的问题。
好的,所以 gatsby-source-filesystem 实际上导出了一个辅助方法 loadNodeContents (当然,它只是从文件中读取)。唯一的问题是这个插件的公共文档网站上没有记录这一点。这是出现相关代码的文件。 https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-filesystem/src/index.js