問題
Next.jsで環境変数を参照できず,undefinedになった.
原因,原因を見つけた方法を共有する.
原因
参照先を,Next.jsがクライアントサイドとして処理していた.
原因を見つけた方法
以下のコードのように,環境変数名の冒頭にNEXT_PUBLIC_をつけたところ,環境変数を参照できた.
つまり,参照先をNext.jsがクライアントサイドとして処理していたことになる.
.env.local
- API_KEY=HOGEHOGE
+ NEXT_PUBLIC_API_KEY=HOGEHOGE
src/app/api/test/test.ts
- console.log(process.env.API_KEY);
+ console.log(process.env.NEXT_PUBLIC_API_KEY);
Next.jsではクライアントサイドから環境変数を参照する際には,環境変数名の冒頭にNEXT_PUBLIC_が付いている必要がある.
現状だと,参照した環境変数がブラウザ側から見えてしまうため,Next.jsがサーバーサイドとして処理するように修正する必要がある.