Node.js Azure静态web应用程序环境变量

Node.js Azure静态web应用程序环境变量,node.js,environment-variables,gatsby,contentful,azure-static-web-app,Node.js,Environment Variables,Gatsby,Contentful,Azure Static Web App,我正试图通过Azure静态web应用发布Gatsbyjs。 我有一个插件(盖茨比源代码contentful) 我需要传递如下变量: { resolve: `gatsby-source-contentful`, options: { spaceId: process.env.CONTENTFUL_SPACE_ID, accessToken: process.env.CONTENTFUL_ACCESS_TOKEN, }, }, 错

我正试图通过Azure静态web应用发布Gatsbyjs。 我有一个插件(盖茨比源代码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
我在哪里可以通过这个

谢谢。

有人打电话给他们。它们用于存储令牌、标识符等敏感数据,不应将它们推送到存储库中,因此您应该忽略它们(在
.gitignore
文件中)

默认情况下,Gatsby在没有注意到您的情况下创建了两个环境,每个编译方法对应一个环境:

  • gatsby develope
    :使用
    .env.develope
  • gatsby build
    :使用
    .env.production
注意:如果需要添加自己的环境,可以使用
NODE\u ENV
自定义命令更改此行为

因此,要将数据传递给您的
gatsby config.js
,只需在项目根目录下创建两个文件(
.env.development
.env.production
)。然后,在您的
gatsby config.js
顶部添加以下代码片段:

require("dotenv").config({
  path: `.env.${process.env.NODE_ENV}`,
})
CONTENTFUL_SPACE_ID=123456789 
CONTENTFUL_ACCESS_TOKEN=123456789 
注意:
dotenv
已经是盖茨比的依赖项,因此您无需再次安装它

这将告诉盖茨比在哪里获取环境变量

您只需留下来填充这两个环境文件。在Contentful中查找凭据,并使用比您在
gatsby config.js中设置的更合理的命名将它们添加到文件中:

require("dotenv").config({
  path: `.env.${process.env.NODE_ENV}`,
})
CONTENTFUL_SPACE_ID=123456789 
CONTENTFUL_ACCESS_TOKEN=123456789 

还要记住,在处理Azure、Netlify、AWS或类似的CI/CD工具时,您需要向服务器提供相同的环境文件,以避免在推送更改时出现代码中断。

感谢您的澄清。我们在当地的环境中没有问题。问题是如何向Azure服务器提供这些变量。