.env

Файл .env задаёт переменные окружения на время разработки и сборки.
Этот файл стоит добавить в .gitignore, чтобы не коммитить секреты в репозиторий.

Режимы dev, build и generate

Nuxt CLI поддерживает dotenv в режиме разработки и при запуске nuxt build и nuxt generate.

Помимо переменных процесса, если в корне проекта есть .env, он автоматически загружается при dev, build и generate. Переменные из него доступны в nuxt.config и модулях.

.env
MY_ENV_VARIABLE=hello
Удаление переменной из .env или самого файла не сбросит уже установленные значения.

Другой файл

Чтобы использовать другой файл (например, .env.local или .env.production), передайте флаг --dotenv в Nuxt CLI:

Terminal
npx nuxt dev --dotenv .env.local

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

В коде приложения используйте Runtime Config вместо «голых» переменных окружения.

Продакшен

После сборки сервера переменные окружения при его запуске задаёте вы.

Файлы .env в этот момент не читаются. Способ задания зависит от окружения.

Так сделано для совместимости с разными платформами (в том числе без классической ФС: serverless, edge вроде Cloudflare Workers).

Варианты задать переменные в продакшене:

  • Передать их в командной строке:
    $ DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
  • Задать в конфигурации shell (.bashrc, .profile).
  • Панели и CLI облачных провайдеров (Vercel, Netlify, AWS и др.) позволяют задать переменные через дашборд, CLI или конфиг.

Превью продакшена локально

Для локального превью продакшена удобно использовать nuxt preview: при нём .env загружается в process.env. Команда требует установленных зависимостей в директории пакета.

Либо передайте переменные в командной строке (Linux/macOS):

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

Для чисто статического сайта после пререндера задать runtime-конфиг нельзя.

Узнать больше Docs > 4 X > Guide > Going Further > Runtime Config.
Если нужны переменные только на этапе сборки и их не нужно менять потом (или менять только реактивно внутри приложения), подойдёт appConfig. Его можно задать в nuxt.config (в том числе через переменные окружения) и в ~/app.config.ts.
Узнать больше Docs > 4 X > Directory Structure > App > App Config.