Environment variable not set
環境変数が設定されていない場合のエラー
概要
アプリケーションが必要とする環境変数が設定されていない場合に発生するエラーです。API キー、データベース接続文字列、シークレットなどの設定が不足しています。
エラーメッセージ
Error: Missing required environment variable: DATABASE_URL
TypeError: Cannot read properties of undefined (reading 'split')
Error: API_KEY is not defined
KeyError: 'SECRET_KEY' (Python)
原因
- .envファイルがない: 環境変数ファイルが作成されていない
- dotenv未読み込み: dotenvパッケージの初期化忘れ
- .envがgitignoreされていない: 本番にコピーされていない
- 変数名のタイプミス: 大文字小文字やスペルの間違い
- デプロイ先での設定忘れ: 本番環境での環境変数未設定
解決策
1. .envファイルの作成
| |
| |
2. Node.js(dotenv)
| |
| |
3. バリデーション付きの読み込み
| |
4. TypeScriptでの型安全な環境変数
| |
5. Python(python-dotenv)
| |
| |
6. Next.jsの環境変数
| |
| |
7. Docker での環境変数
| |
| |
| |
8. GitHub Actions
| |
9. Vercel/Netlify
| |
10. AWS Parameter Store / Secrets Manager
| |
11. .gitignore の設定
# .gitignore
.env
.env.local
.env.*.local
.env.production
# .env.example はコミットする
!.env.example
12. デバッグ
| |
環境別ファイルの優先順位(Next.js)
.env.$(NODE_ENV).local.env.local.env.$(NODE_ENV).env
よくある間違い
.envファイルを本番サーバーにコピーし忘れるNEXT_PUBLIC_プレフィックスをつけ忘れてクライアントで使えない- シークレットをクライアントサイドで使おうとする
- .envファイルをgitにコミットしてしまう
関連エラー
参考リンク
この記事は役に立ちましたか?