.env
.gitignore, чтобы не коммитить секреты в репозиторий.Режимы dev, build и generate
Nuxt CLI поддерживает dotenv в режиме разработки и при запуске nuxt build и nuxt generate.
Помимо переменных процесса, если в корне проекта есть .env, он автоматически загружается при dev, build и generate. Переменные из него доступны в nuxt.config и модулях.
MY_ENV_VARIABLE=hello
.env или самого файла не сбросит уже установленные значения.Другой файл
Чтобы использовать другой файл (например, .env.local или .env.production), передайте флаг --dotenv в Nuxt CLI:
npx nuxt dev --dotenv .env.local
При изменении .env в режиме разработки Nuxt перезапускается, чтобы применить новые значения в process.env.
Продакшен
После сборки сервера переменные окружения при его запуске задаёте вы.
Файлы .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):
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
Для чисто статического сайта после пререндера задать runtime-конфиг нельзя.
appConfig. Его можно задать в nuxt.config (в том числе через переменные окружения) и в ~/app.config.ts.