如何解决Azure 静态 Web 应用程序环境变量
我正在尝试通过 Azure 静态 Web 应用发布 Gatsbyjs。 我有一个插件 (gatsby-source-contentful)。
我需要传递如下变量:
{
resolve: `gatsby-source-contentful`,options: {
spaceId: process.env.CONTENTFUL_SPACE_ID,accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,},
错误:
Running 'npm run build'...
> gatsby-starter-default@0.1.0 build /github/workspace
> gatsby build
success open and validate gatsby-configs - 0.021s
error Invalid plugin options for "gatsby-source-contentful":
- "accessToken" is required
- "spaceId" is required
not finished load plugins - 0.905s
我在哪里可以通过这个?
谢谢。
解决方法
它们被称为environment variables。它们旨在存储敏感数据,例如令牌、标识符等,不应将它们推送到您的存储库中,因此您应该忽略它们(在您的 .gitignore
文件中)。
默认情况下,Gatsby 在没有注意到您的情况下创建了 2 个环境,每个编译方法一个:
-
gatsby develop
:使用.env.development
-
gatsby build
:使用.env.production
注意:如果需要使用 NODE_ENV
自定义命令添加自己的环境,您可以更改此行为。
因此,要将您的数据传递给您的 gatsby-config.js
,您只需在项目的根目录下创建两个文件(.env.development
和 .env.production
)。然后,在您的 gatsby-config.js
顶部添加以下代码段:
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,})
注意:dotenv
已经是 Gatsby 的依赖项,因此您无需再次安装
这将告诉 Gatsby 在哪里获取环境变量。
您只需要填充两个环境文件即可。在 Contentful 中查找凭据,并使用您在 gatsby-config.js
中设置的合理命名将它们添加到文件中:
CONTENTFUL_SPACE_ID=123456789
CONTENTFUL_ACCESS_TOKEN=123456789
还要记住,在处理 Azure、Netlify、AWS 或类似的 CI/CD 工具时,您需要向服务器提供相同的环境文件,以避免在推送更改时破坏代码。
>版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。