Next.js の環境変数(.env)の使い方
はじめに
環境変数は
公開/非公開、
tldr
- 基本的に
開発環境では .env.local のみで 十分。 この ファイルには 非公開の シークレットキーなどを 保存する ため .gitignore に リストして おきます。 - 本番環境での
環境変数の 設定は .env ファイルではなく Vercel や Netlify と いった ホスティングサービス側で やります。
.env ファイルはリポジトリに含めてもいいのか
.env.local 以外の
備考: .env、.env.development、
Note: .env, .env.development, and .env.production files should be included in your repository as they define defaults.
https://nextjs.org/docs/basic-features/environment-variables#default-environment-variables
公開しても
.env ファイルの種類と違い
.env.local
- シークレットキーなどを
保存します。 なので GitHub などに プッシュしては いけません。 - 開発環境時(
next dev
したとき)に 読み込まれます。
.env
- 公開しても
安全な 値を 保存します。 - .env.development や
.env.production が 無い 場合は このファイルが 読み込まれます。
.env.development
- 公開しても
安全な 値を 保存します。 - 開発環境時(
next dev
したとき)に 読み込まれます。
.env.production
- 公開しても
安全な 値を 保存します。 - 本番環境時(
next start
したとき)に 読み込まれます。
.env.test
- jest や
cypress などの テスト環境で 読み込まれます。
優先度
同じ
開発環境
.env.local > .env.development > .env
本番環境
.env.production > .env
環境変数を公開する
通常、
しかし、NEXT_PUBLIC_
を
1NEXT_PUBLIC_ENV_VARIABLE="public_variable"
1const TestComponent = () => {
2 return <div>{process.env.NEXT_PUBLIC_ENV_VARIABLE}</div>;
3};
ただ、
1// Does NOT work.
2const { NEXT_PUBLIC_ENV_VARIABLE } = process.env;
とは
環境変数の
参考
https://nextjs.org/docs/basic-features/environment-variables