nextjs
でタグマネージャーを導入する際に、本番環境、検証環境、開発環境といった環境ごとにコンテナのIDを指定することにした。
ただnextjs
では用意されたenv
と適応コマンドがすでに割りついているっぽい。
環境ファイル | 役割 |
---|---|
.env.local | next dev |
.env.development | next dev |
.env.production | next build/next start |
参考:Next.jsで環境ファイル(env)別ビルドを行う 参考:Add support for custom environments
今回は、同じnext start
で3つの環境を作成したいけど、前述の通りそれだと.env.production
しか呼び出すことができない。
そこでenv-cmdを使用する。
#Using custom env file path To use a custom env filename or path, pass the flag. This is a major breaking change from prior versions < 9.0.0-f
とあるように、アプリをビルド/実行するときに特定の.envファイルを選択することができるパッケージ。
.env.prod
.env.stag
.env.local
と3つのEnv
を用意し下記のようなScript
を作成すれば、それぞれのScript
ごとに対応するEnv
を読みに行ってくれる。
"prod": "env-cmd -f .env.prod next build && next start",
"stag": "env-cmd -f .env.stag next build && next start",
"local": "env-cmd -f .env.local next build && next start",