RSS DEV コミュニティ
フォロー
プロセス.envについて誰も教えてくれない10のこと
環境変数は扱いに注意が必要であり、そのニュアンスを理解することは、一般的な開発上の落とし穴を避けるために不可欠です。Linuxでは環境変数キーは大文字と小文字を区別しますが、Windowsでは区別しないため、「自分のマシンでは動く」問題を引き起こす可能性があります。process.envから取得される値はすべて文字列であるため、予期しない動作やNaNの発生を避けるには、数値やブール値の明示的な解析が必要です。process.envオブジェクトは.envファイルとは別であり、Node.jsは特定の構成なしに.envファイルを自動的に読み込みません。環境変数はコマンドごとに設定でき、そのスコープを単一のプロセスに限定し、シェルの汚染を回避できます。実行時にprocess.envを変更することは、デバッグを著しく妨げ、不確実性を生じさせるため、強く推奨されません。Next.jsでは、NEXT_PUBLIC_変数はビルド時にインライン化されます。これは、本番サーバーでこれらの変数を変更した場合、再ビルドが必要になることを意味します。process.envはブラウザでは直接利用できません。WebpackやViteのようなビルドツールは、多くの場合、公開される変数に特定のプレフィックスを使用して、それをエミュレートします。NODE_ENV変数はNode.jsによってデフォルトで設定されず、フレームワークによって処理されるか、明示的に設定される必要があります。一部のシステムでは環境変数の値にサイズ制限がある場合があり、大きなデータが切り捨てられる可能性があることに注意してください。最後に、環境変数は子プロセスに継承されるため、それらを必要としないプロセスにシークレットが公開される可能性があります。