[verdash]

Vercel で環境変数を変えたのに、反映されないのはなぜ?

Vercel では、環境変数の変更は、すでにあるデプロイには反映されず、新しいデプロイにだけ入ります。値を変えたら、再デプロイ(Redeploy) して新しいデプロイを作ります。

再デプロイは、プロジェクトの Deployments で対象のデプロイの「…」から Redeploy を選びます。それでも変わらないときは、変数を付けた環境(Production・Preview・Development)が、見ているデプロイと合っているかを確かめます。

再デプロイのしかたは?

  1. プロジェクトの Deployments を開く。
  2. 作り直したいデプロイを探し、「…」から Redeploy を選ぶ。
  3. 既存のビルドキャッシュ(Build Cache)を使うかを選び、Redeploy を押す。

Vercel の案内でも、環境変数を変えたときは再デプロイするよう書かれています。新しくコミットを push しても、新しいデプロイができるので反映されます。

再デプロイしても変わらないときは?

よくある原因

環境が違う
Production にだけ付けた変数は、Preview のデプロイには入りません。Preview はブランチごとに値を分けられ、ブランチの値が優先されます。
ロールバック中
Instant Rollback は再ビルドしないので、戻した先のデプロイを作ったときの環境変数のままです。
手元の開発
Development の値は、手元の .env.local などに取り込んで使います。設定画面で変えただけでは、手元には入りません。

ビルドのときと動くとき、どちらで読まれる?

Vercel の案内では、環境変数はビルドのとき(Build Step)にも、Functions が動くときにも読めます。どちらで読む値でも、変更が入るのは新しいデプロイからです。動いている Functions だけが新しい値を読む、ということはありません。

よくある質問

環境変数を変えるたびに、再デプロイが要る?
はい。変更は新しいデプロイにだけ入るので、反映させたいデプロイを作り直します。

参考にした資料

記事は Vercel の公式ドキュメントをもとにした、個人のまとめです。画面の名前やプランの数字は変わることがあるので、最新は公式ドキュメントで確かめてください。Verdash は Vercel Inc. の公式アプリではありません。Vercel は Vercel Inc. の商標です。

あわせて読みたい

Vercel の使い方の記事を、すべて見る
お困りですか?使い方のご質問、機能のご要望、不具合のご報告など、お気軽にお問い合わせください。
$ contact --app verdash