我正在尝试学习和编写我的第一本GatsbyJs porfolio,但是在构建此入门工具时,我遇到了错误:https://www.gatsbyjs.org/starters/smakosh/gatsby-portfolio-dev/
仍然没有碰到任何一行代码... 尝试删除node_modules和npm再次安装,但存在相同错误。
"gatsby-source-graphql" threw an error while running the sourceNodes lifecycle:
Response not successful: Received status code 401
ServerError: Response not successful: Received status code 401
- index.js:23 Object.exports.throwServerError
[gatsby-portfolio-dev]/[apollo-link-http-common]/lib/index.js:23:17
- index.js:48
[gatsby-portfolio-dev]/[apollo-link-http-common]/lib/index.js:48:21
- task_queues.js:97 processTicksAndRejections
internal/process/task_queues.js:97:5
not finished source and transform nodes - 1.135s
答案 0 :(得分:1)
由于gatsby-config.js
(line 25)中有一些环境变量,因此您的项目无法运行。
{
resolve: 'gatsby-source-graphql',
options: {
typeName: 'GitHub',
fieldName: 'github',
url: 'https://api.github.com/graphql',
headers: {
Authorization: `bearer ${process.env.GATSBY_PORTFOLIO_GITHUB_TOKEN}`, // here
},
fetchOptions: {},
},
},
基本上,不允许您连接到GitHub来收集信息,并且它们的API会引发401
错误(未经授权)。
环境变量包含ids
,tokens
和其他关键(和私有)数据,这些数据使您可以连接到某些外部API(在这种情况下为GitHub),并且不得将其上传到公共存储库中(出于明显的原因),这就是为什么入门者不提供此信息的原因。您应该自行将其添加到项目中。看一下GitHub's documentation以获得自己的API令牌。
如果您检查要运行的启动程序的CodeSandbox,则它们会有一个空的.env.development
文件,所有这些变量都应该存放在该文件中。
有关更多信息,请查看Gatsby's documentation about Environment Variables。