Gatsby 构建命令 - 内容丰富的插件未从 .env 文件获取 spaceId 和 accessToken

Gatsby build command - contentful plugin not getting spaceId & accessToken from .env file

我已经为此工作了几个小时,并且一直在此处尝试针对类似问题提出的一些建议。

我可以 运行 我的 gatsby 站点开发构建很好,但是当我 运行 “gatsby 构建”时,我 运行 遇到了这个错误。

Invalid plugin options for "gatsby-source-contentful":

- "accessToken" is required
- "spaceId" is required

not finished open and validate gatsby-configs, load plugins - 1.427s

我有一个名为“.env”的 .env 文件,其中包含两个必要的环境变量,在我的 gatsby-config 文件中,我将其配置为这样...

resolve: 'gatsby-source-contentful',
      options: {
        spaceId: process.env.CONTENTFUL_SPACE_ID,
        accessToken: process.env.CONTENTFUL_ACCESS_TOKEN
      }

我已经通过手动将 accessToken 和 spaceId 添加到我的 gatsby-config 插件选项和 运行“gatsby build”来测试它们,它们工作正常。但是,当我将配置更改回 env 变量时,这并不好,我得到了我之前提到的错误。

我最近尝试的一件事是制作另一个 .env 文件并将其命名为“.env.production”,它抛出了一个不同的错误,如下所示...

“error Cannot access Contentful space “*********ab” on environment “master” with access token “***************************************1234”. Make sure to double check them! (value)”

这让我在 contentful 上查看 master 环境,但我对它还很陌生,这让我很困惑。

我可以在这里找到很多相同类型的问题,但我还没有找到有效的解决方案。那里有遇到过这个问题的盖茨比专家吗?

根据Environment variables docs

In development, Gatsby will load environment variables from a file named .env.development. For builds, it will load from .env.production.

因此,在您的方案中,只需复制 .env 文件并将其重命名为 .env.development.env.production。 Gatsby 将根据触发的命令获取所需的数据。