Node.js Azure静态web应用程序环境变量
我正试图通过Azure静态web应用发布Gatsbyjs。 我有一个插件(盖茨比源代码contentful) 我需要传递如下变量: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, }, }, 错
{
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服务器提供这些变量。