このチュートリアルを使用しました: https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/environment-variables.md
私が従った手順:
1) dotenv@4.0.0 をインストール
2) ルート フォルダーに「.env.development」と「.env.production」の 2 つのファイルを作成します。
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 からビルドするため、他に安全な方法はありますか?