Sobes.tech
Back to questions
Middle
9

Как в Nuxt 3 правильно хранить runtime config и чем public config отличается от private?

Companies where asked
Хайерлаб

Answer from AI

sobes.tech AI

В Nuxt 3 runtime config используется для хранения конфигурационных значений, которые могут отличаться между средами (разработка, продакшн) и доступны во время выполнения приложения.

Конфигурация делится на две части:

  • private runtime config — доступна только на сервере (Node.js), не попадает в клиентский бандл. Используется для секретных ключей, API токенов и т.п.
  • public runtime config — доступна и на сервере, и на клиенте. Используется для значений, которые можно безопасно раскрывать, например, URL API.

Пример настройки в nuxt.config.ts:

export default defineNuxtConfig({
  runtimeConfig: {
    // приватный конфиг
    apiSecret: process.env.API_SECRET,
    // публичный конфиг
    public: {
      apiBase: process.env.API_BASE || 'https://api.example.com'
    }
  }
})

Доступ к конфигу в коде:

const config = useRuntimeConfig()
console.log(config.apiSecret) // доступно только на сервере
console.log(config.public.apiBase) // доступно и на клиенте

Таким образом, private config защищает секреты, а public config позволяет безопасно передавать настройки на клиент.