diff --git a/docs/2.guide/2.directory-structure/2.env.md b/docs/2.guide/2.directory-structure/2.env.md index 6350415755..1d353907b6 100644 --- a/docs/2.guide/2.directory-structure/2.env.md +++ b/docs/2.guide/2.directory-structure/2.env.md @@ -7,6 +7,8 @@ head.title: ".env" # .env File +## At Build, Dev, and Generate Time + Nuxt CLI has built-in [dotenv](https://github.com/motdotla/dotenv) support in development mode and when running `nuxi build` and `nuxi generate`. In addition to any process environment variables, if you have a `.env` file in your project root directory, it will be automatically loaded **at build, dev, and generate time**, and any environment variables set there will be accessible within your `nuxt.config` file and modules. @@ -27,7 +29,17 @@ When updating `.env` in development mode, the Nuxt instance is automatically res Note that removing a variable from `.env` or removing the `.env` file entirely will not unset values that have already been set. :: -However, **after your server is built**, you are responsible for setting environment variables when you run the server. Your `.env` file will not be read at this point. How you do this is different for every environment. On a Linux server, you could pass the environment variables as arguments using the terminal `DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs`. Or you could source your env file using `source .env && node .output/server/index.mjs`. +## Production Preview + +**After your server is built**, you are responsible for setting environment variables when you run the server. Your `.env` file will not be read at this point. How you do this is different for every environment. + +For local production preview purpose, we recommend using [`nuxi preview`](https://nuxt.com/docs/api/commands/preview) since using this command, the `.env` file will be loaded into `process.env` for convenience. Note that this command requires dependencies to be installed in the package directory. + +Or you could pass the environment variables as arguments using the terminal. For example, on Linux or macOS: + +```bash +DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs +``` Note that for a purely static site, it is not possible to set runtime configuration config after your project is prerendered.