我使用了本教程:https ://github.com/gatsbyjs/gatsby/blob/master/docs/docs/environment-variables.md
我遵循的步骤:
1)安装dotenv@4.0.0
2)在根文件夹中创建两个文件:“.env.development”和“.env.production”
3)“按照他们的设置说明”(dotenv npm docs上的示例)
在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 Projects\Gatsby\sebhewelt.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 构建时,还有其他安全的方法吗?