[Gatsby]環境変数を使う
- 公開日:2022/6/22
この記事は最終更新日から2年以上が経過しています。
Gatsbyで環境変数を使用する方法です。
Gatsbyではdotenvが使えるようになっているので簡単です。
環境変数用のファイルをつくる
ルートディレクトリ(gatsby-config.jsがあるところ)にファイルを2つ作ります。開発環境用と本番環境用のファイルです。名前は以下のとおり。
- .env.development
- .env.production
.env.development
は、gatsby develop
で使われます。.env.production
は、gatsby build
またはgatsby serve
で使われます。
.gitignoreに追記
Git管理している場合は環境変数用のファイルは除いておいた方がよいです。環境に依存するやつなので。
Gatsby Starter Blog の.gitignoreファイルにはデフォルトで以下が記述済みでした。
.gitignore
# dotenv environment variable files
.env*
環境変数を指定
それぞれのファイルで変数を指定します。
.env.development
TEST_MSG = "これはDEVELOPMENTです"
.env.production
TEST_MSG = "これはPRODUCTIONです"
※環境変数を編集した場合、devサーバは再起動しないと読み込まれないので注意が必要です。
コンポーネントで読み込む
適当なコンポーネントで以下を記述してみる。
console.log(process.env.TEST_MSG)
gatsby develop
してブラウザのデバッグツールでconsoleを見ると「これはDEVELOPMENTです」と表示されており.env.development
が読み込まれていることがわかります。
gatsby build
して本番環境にアップロードすると「これはPRODUCTIONです」が表示されます。
gatsby-config.jsで読み込む
gatsby-config.js内で環境変数を使う場合はファイルの先頭に次の記述をしておけば、あとは同じ。
gatsby-config.js
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,
})