Runtime-конфигурация
Проброс конфигурации
Чтобы сделать конфиг и переменные окружения доступными в приложении, задайте их в nuxt.config в опции runtimeConfig.
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) можно только на этапе сборки — в рантайме это не сработает.