nuxt logo

ドキュメント翻訳(非公式)

.env

.env ファイルはビルド/開発時の環境変数を指定します。

このファイルは、リポジトリに秘密情報をプッシュしないようにするために、.gitignore ファイルに追加する必要があります。

開発、ビルド、生成時

Nuxt CLI は、開発モードおよび nuxt buildnuxt generate を実行する際に、dotenv のサポートを組み込んでいます。

プロセス環境変数に加えて、プロジェクトのルートディレクトリに .env ファイルがある場合、開発、ビルド、生成時に自動的に読み込まれます。そこに設定された環境変数は、nuxt.config ファイルやモジュール内でアクセス可能です。

.env
MY_ENV_VARIABLE=hello

.env から変数を削除したり、.env ファイルを完全に削除したりしても、すでに設定された値は解除されないことに注意してください。

カスタムファイル

異なるファイルを使用したい場合、例えば .env.local.env.production を使用する場合は、Nuxt CLI を使用する際に --dotenv フラグを渡すことで実現できます。

Terminal
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 では:

Terminal
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs

純粋に静的なサイトの場合、プロジェクトが事前レンダリングされた後にランタイム設定を行うことはできません。

こちらも参照 guide > going-further > runtime-config

ビルド時に設定された環境変数を使用したいが、後でそれらを更新することを気にしない(またはアプリ内でのみ反応的に更新する必要がある)場合は、appConfig がより適した選択肢かもしれません。appConfig は、nuxt.config 内(環境変数を使用して)およびプロジェクト内の ~/app.config.ts ファイル内の両方で定義できます。

こちらも参照 guide > directory-structure > app-config