.env
.env ファイルはビルド/開発時の環境変数を指定します。
このファイルは、リポジトリに秘密情報をプッシュしないようにするために、.gitignore
ファイルに追加する必要があります。
開発、ビルド、生成時
Nuxt CLI は、開発モードおよび nuxt build
や nuxt generate
を実行する際に、dotenv のサポートを組み込んでいます。
プロセス環境変数に加えて、プロジェクトのルートディレクトリに .env
ファイルがある場合、開発、ビルド、生成時に自動的に読み込まれます。そこに設定された環境変数は、nuxt.config
ファイルやモジュール内でアクセス可能です。
MY_ENV_VARIABLE=hello
.env
から変数を削除したり、.env
ファイルを完全に削除したりしても、すでに設定された値は解除されないことに注意してください。
カスタムファイル
異なるファイルを使用したい場合、例えば .env.local
や .env.production
を使用する場合は、Nuxt CLI を使用する際に --dotenv
フラグを渡すことで実現できます。
npx nuxt dev --dotenv .env.local
開発モードで .env
を更新すると、Nuxt インスタンスは自動的に再起動され、新しい値が process.env
に適用されます。
アプリケーションコード内では、プレーンな環境変数の代わりに Runtime Config を使用するべきです。
本番環境
サーバーがビルドされた後、サーバーを実行する際に環境変数を設定する責任があります。
この時点では .env
ファイルは読み込まれません。これを行う方法は環境ごとに異なります。
この設計上の決定は、サーバーレスプラットフォームや Cloudflare Workers のようなエッジネットワークなど、従来のファイルシステムが利用できない可能性のあるさまざまなデプロイ環境との互換性を確保するために行われました。
本番環境では .env
ファイルが使用されないため、ホスティング環境が提供するツールや方法を使用して環境変数を明示的に設定する必要があります。一般的なアプローチは以下の通りです:
-
環境変数を引数としてターミナルで渡すことができます:
$ DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
-
.bashrc
や.profile
のようなシェル設定ファイルに環境変数を設定することができます。 -
Vercel、Netlify、AWS などの多くのクラウドサービスプロバイダーは、ダッシュボード、CLI ツール、または設定ファイルを介して環境変数を設定するためのインターフェースを提供しています。
本番プレビュー
ローカルでの本番プレビュー目的には、nuxt preview
を使用することをお勧めします。このコマンドを使用すると、.env
ファイルが process.env
に読み込まれるため便利です。このコマンドは、パッケージディレクトリに依存関係がインストールされている必要があります。
または、ターミナルを使用して環境変数を引数として渡すこともできます。例えば、Linux や macOS では:
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
純粋に静的なサイトの場合、プロジェクトが事前レンダリングされた後にランタイム設定を行うことはできません。
こちらも参照 guide > going-further > runtime-configビルド時に設定された環境変数を使用したいが、後でそれらを更新することを気にしない(またはアプリ内でのみ反応的に更新する必要がある)場合は、appConfig
がより適した選択肢かもしれません。appConfig
は、nuxt.config
内(環境変数を使用して)およびプロジェクト内の ~/app.config.ts
ファイル内の両方で定義できます。
※このページは Nuxt.js 公式ドキュメントの翻訳ページ(非公式)です。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/guide/directory-structure/env