Setting environment variables in Gatsby(在Gatsby中设置环境变量)
问题描述
我使用了此教程:https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/environment-variables.md
我遵循的步骤:
1)安装dotenv@4.0.0
2)在根文件夹中创建".env.Development"和".env.Products"两个文件
3)"按照他们的设置说明操作"(dotenv NPM文档上的示例)
在gatsby-config.js
中:
const fs = require('fs');
const dotenv = require('dotenv');
const envConfig =
dotenv.parse(fs.readFileSync(`.env.${process.env.NODE_ENV}`));
for (var k in envConfig) {
process.env[k] = envConfig[k];
}
遗憾的是,当我运行gatsby develop
时,NODE_ENV
尚未设置:
error Could not load gatsby-config
Error: ENOENT: no such file or directory, open 'E:Front-End ProjectsGatsbysebhewelt.com.env.undefined'
当我手动设置它时,它起作用:
dotenv.parse(fs.readFileSync(`.env.development`));
我需要Gatsby-CONFIG中的环境变量,因为我将敏感数据放在此文件中:
{
resolve: `gatsby-source-contentful`,
options: {
spaceId: envConfig.CONTENTFUL_SPACE_ID,
accessToken: envConfig.CONTENTFUL_ACCESS_TOKEN
}
}
如何使其工作?
PS:额外的问题-这让我思考,我知道我不应该在GitHub上放置密码和令牌,但由于netlify是从GitHub构建的,还有其他安全的方法吗?
推荐答案
您应该只在愿意将环境文件签入GIT时才使用这些文件。对于密码/令牌等,请将其添加到Netlify或您通过其仪表板使用的任何构建工具。
您可以通过process.env.ENV_VARIABLE
在Gatsby-config.js和amp;Gatsby-node.js中访问这些内容。
.env.development
&;.env.production
。
这篇关于在Gatsby中设置环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在Gatsby中设置环境变量
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01