# .env

> Файл .env задаёт переменные окружения для разработки и сборки.

<important>

Добавьте файл .env в [`.gitignore`](/docs/3.x/directory-structure/gitignore/), чтобы не утекали секреты при отправке кода в удалённый репозиторий.

</important>

## Время разработки, сборки и генерации

Nuxt CLI имеет встроенную поддержку [dotenv](https://github.com/motdotla/dotenv) в режиме разработки, а также при запуске сборки [`nuxt build`](/docs/3.x/api/commands/build) и генерации [`nuxt generate`](/docs/3.x/api/commands/generate).

Если у вас есть файл `.env` в корне проекта, то он автоматически загружается **во время разработки, сборки и генерации**. Любые переменные окружения, установленные там, будут доступны в вашем файле `nuxt.config` и модулях.

```ini [.env]
MY_ENV_VARIABLE=hello
```

<note>

Обратите внимание, что удаление переменной из `.env` или полное удаление файла `.env` не сбросит уже установленные значения.

</note>

## Кастомный файл .env

Если вы хотите использовать разные файлы - например, `.env.local` или `.env.production` - вы можете передавать флаг `--dotenv` при использовании Nuxt CLI.

```bash [Терминал]
npx nuxt dev --dotenv .env.local
```

При обновлении `.env` во время разработки, экземпляр Nuxt автоматически перезапускается, чтобы применить новые значения к `process.env`.

<important>

В коде приложения вместо прямого чтения переменных окружения используйте [конфигурацию рантайма](/docs/3.x/guide/going-further/runtime-config).

</important>

## Продакшен

**После сборки сервера** за установку переменных окружения при запуске отвечаете вы.

На данном этапе ваши `.env` файлы не будут считываться. Способ их использования зависит от каждой конкретной среды.

Так сделано ради совместимости с разными средами развёртывания: в serverless и на edge-платформах (например, Cloudflare Workers) к файловой системе с `.env` часто нет доступа.

В продакшене `.env` не подхватываются автоматически: переменные задаются явно — теми средствами, которые даёт хостинг. Типичные варианты:

- Вы можете передавать переменные окружения в качестве аргументов, используя терминал;<br />

`$ DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs`
- Вы можете установить переменные окружения в файлах конфигурации оболочки, например в файлах `.bashrc` или `.profile`;
- У большинства облачных провайдеров (Vercel, Netlify, AWS и др.) есть панели, CLI или конфиги для переменных окружения.

<important>

В продакшене `runtimeConfig` подхватывает только переменные окружения с префиксом `NUXT_`. Подробнее — в разделе [«Переменные окружения»](/docs/3.x/guide/going-further/runtime-config#environment-variables).

</important>

## Предпросмотр в продакшене

Для локального предпросмотра продакшен-сборки удобно вызывать [`nuxt preview`](/docs/3.x/api/commands/preview): команда подгружает `.env` в `process.env`. Перед этим нужны установленные зависимости в каталоге проекта.

Вы можете передавать переменные окружения в качестве аргументов, используя терминал. Например, для Linux или macOS:

```bash [Терминал]
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
```

У статического сайта после пререндера нельзя изменить runtime-конфигурацию.

<read-more to="/docs/3.x/guide/going-further/runtime-config">



</read-more>

<note>

Если нужны значения из переменных окружения на этапе сборки без дальнейшей синхронизации с `.env`, либо требуется реактивно менять настройки *внутри* приложения, подойдёт `appConfig`: задайте его в `nuxt.config` (в т.ч. из env) и в `~/app.config.ts`.

<read-more to="/docs/3.x/directory-structure/app-config/">



</read-more>
</note>
