gatsby-source-contentful选项在构建时出错。

问题描述 投票:1回答:1

前段时间我用Gatsby做了一个网站,我的页面使用了静态markdown.现在我想把我所有的帖子都搬到Contentful上,在开发中一切都很好。当我去Netlify上部署我的网站时,它给我扔了一个错误。我一直在寻找解决方案,但还没有找到。我试着在本地运行构建,它给我抛出了这个错误,所以我相信我需要在部署前先解决这个问题。

ERROR 

Problems with gatsby-source-contentful plugin options:
spaceId: undefined - "spaceId" is required
accessToken: undefined - "accessToken" is required
host (default value): "cdn.contentful.com"
environment (default value): "master"
downloadLocal (default value): false
localeFilter (default value): [Function]
forceFullSync (default value): false
pageLimit (default value): 100
useNameForId (default value): true

not finished onPreBootstrap - 0.056s
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `gatsby build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\user\AppData\Roaming\npm-cache\_logs\2020-05-13T15_20_35_160Z-debug.log

显然,它没有读取.env变量。我确实在Netlify上设置了变量,就像我之前在开发中说的那样,它工作得很好,没有抛出任何类型的错误。

我之前没有安装'dotenv',我试着安装了它,但没有解决这个问题。我确实只有一个'.env'文件,但我试过制作'.env.development'和'.env.production'文件,但没有成功。

我怎样才能解决这个问题呢?作为一个额外的问题,我确实得到了一些错误,只在Netlify上,如

error There was an error in your GraphQL query:
Unknown type "ContentfulFluid". 

但我不认为它们会导致构建失败。

EDIT:我应该补充的是,如果我把.env变量写成字符串,构建确实会在本地运行,这让我相信在部署时也会这样做。

deployment gatsby netlify contentful
1个回答
1
投票

你必须设置你的 .env 变量在Netlify中使用 GATSBY_ 前缀。所以,你的 CONTENTFUL_ID 变量将 GATSBY_CONTENTFUL_ID.

enter image description here

建议在你的本地环境和构建环境中使用相同的命名,以保持它们之间的逻辑。所以,你需要在所有引用的前缀上加上 .env 使用 GATSBY_ 在您的本地环境中也是如此。为此,您可能需要在您的本地环境中创建一个 .env.development.env.production 如果你以前没有设置过。

您可以在 Netlify文件:

Gatsby环境变量

任何前缀为 GATSBY_ 将由 Gatsby 处理,并在浏览器中提供给客户端 JavaScript 访问。更多信息请访问Gatsby关于环境变量的文档。

以及在 盖茨比的文件.


0
投票

经过多次尝试调试我的代码和安装以前版本的 gatsby-source-contentful 我发现,如果你没有任何的 Media 关于 contentful.要解决任何类似的错误,你需要做的是在你的网站上添加一个虚拟媒体。contentful 本身就能正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.