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中设置环境变量
基础教程推荐
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- 直接将值设置为滑块 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01