【问题标题】:Gatsby build command - contentful plugin not getting spaceId & accessToken from .env fileGatsby 构建命令 - 内容丰富的插件没有从 .env 文件中获取 spaceId 和 accessToken
【发布时间】:2021-10-17 18:02:40
【问题描述】:

我已经为此工作了几个小时,并在这里尝试了一些类似问题的建议。

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

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 文件,其中包含两个必要的 env 变量,在我的 gatsby-config 文件中,我将其配置为这样...

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

我已经通过手动将它们添加到我的 gatsby-config 插件选项中测试了 accessToken 和 spaceId 并运行了“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)”

这让我研究了关于内容的主环境,但我对它很陌生,这让我很困惑。

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

【问题讨论】:

  • 请显示 .env 文件的编辑版本

标签: reactjs environment-variables gatsby contentful


【解决方案1】:

根据Environment variables docs

在开发中,Gatsby 会从文件中加载环境变量 命名为.env.development。对于构建,它将从 .env.production 加载。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2020-09-09
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多