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.js 中得到 ERR_CONNECTION_TIMED_OUT? 2022-01-01
- 每次设置弹出窗口的焦点 2022-01-01
- Javascript 在多个元素上单击事件侦听器并获取目标 2022-01-01
- 如何使用 CSS 显示和隐藏 div? 2022-01-01
- Node.js 有没有好的索引/搜索引擎? 2022-01-01
- jQuery File Upload - 如何识别所有文件何时上传 2022-01-01
- 什么是不使用 jQuery 的经验技术原因? 2022-01-01
- 如何使用sencha Touch2在单页中显示列表和其他标签 2022-01-01
- WatchKit 支持 html 吗?有没有像 UIWebview 这样的控制器? 2022-01-01
- 如何在特定日期之前获取消息? 2022-01-01
