Runtime-конфигурация

В Nuxt конфигурация и секреты доступны через API runtime config.

Проброс конфигурации

Чтобы сделать конфиг и переменные окружения доступными в приложении, задайте их в nuxt.config в опции runtimeConfig.

nuxt.config.ts
export default defineNuxtConfig({
  runtimeConfig: {
    apiSecret: '123',  // только на сервере
    public: {
      apiBase: '/api', // доступно и на клиенте
    },
  },
})

Ключи из runtimeConfig.public попадают в payload каждой страницы. Доступ через useRuntimeConfig() в коде и через $config.public в шаблонах Vue.

Сериализация

Runtime config сериализуется перед передачей в Nitro. Функции, Set, Map и другие несериализуемые значения в nuxt.config задавать нельзя — их нужно инициализировать в плагине Nuxt или Nitro или в middleware.

Переменные окружения

Обычно конфигурацию задают переменными окружения. Nuxt CLI в dev/build/generate читает .env; при запуске уже собранного сервера файл .env не читается — переменные задаются в окружении.

Значения runtime config подменяются переменными окружения в рантайме. Нужно: (1) объявить ключи в nuxt.config; (2) переопределять только переменными вида NUXT_ + ключ с подчёркиваниями (например NUXT_PUBLIC_API_BASE для public.apiBase).

Задавать в runtimeConfig значения по умолчанию из других переменных (например process.env.OTHER_VARIABLE) можно только на этапе сборки — в рантайме это не сработает.
Узнать больше Docs > 4 X > Directory Structure > Env.