nuxt logo

Traducción de Documentación (No Oficial)

useRuntimeConfig

Accede a las variables de configuración en tiempo de ejecución con el composable useRuntimeConfig.

Uso

app.vue
const config = useRuntimeConfig()
server/api/foo.ts
export default defineEventHandler((event) => {
  const config = useRuntimeConfig(event)
})
Ver también guide > going-further > runtime-config

Definir Configuración en Tiempo de Ejecución

El siguiente ejemplo muestra cómo establecer una URL base de API pública y un token de API secreto que solo es accesible en el servidor.

Siempre debemos definir las variables runtimeConfig dentro de nuxt.config.

nuxt.config.ts
export default defineNuxtConfig({
  runtimeConfig: {
    // Las claves privadas solo están disponibles en el servidor
    apiSecret: '123',

    // Claves públicas que se exponen al cliente
    public: {
      apiBase: process.env.NUXT_PUBLIC_API_BASE || '/api'
    }
  }
})

Las variables que necesitan ser accesibles en el servidor se añaden directamente dentro de runtimeConfig. Las variables que necesitan ser accesibles tanto en el cliente como en el servidor se definen en runtimeConfig.public.

Ver también guide > going-further > runtime-config

Acceder a la Configuración en Tiempo de Ejecución

Para acceder a la configuración en tiempo de ejecución, podemos usar el composable useRuntimeConfig():

server/api/test.ts
export default defineEventHandler((event) => {
  const config = useRuntimeConfig(event)

  // Acceder a variables públicas
  const result = await $fetch(`/test`, {
    baseURL: config.public.apiBase,
    headers: {
      // Acceder a una variable privada (solo disponible en el servidor)
      Authorization: `Bearer ${config.apiSecret}`
    }
  })
  return result
}

En este ejemplo, dado que apiBase está definido dentro del espacio de nombres public, es accesible universalmente tanto en el lado del servidor como en el del cliente, mientras que apiSecret solo es accesible en el lado del servidor.

Variables de Entorno

Es posible actualizar los valores de configuración en tiempo de ejecución utilizando un nombre de variable de entorno coincidente con el prefijo NUXT_.

Ver también guide > going-further > runtime-config

Usando el Archivo .env

Podemos establecer las variables de entorno dentro del archivo .env para hacerlas accesibles durante el desarrollo y la construcción/generación.

.env
NUXT_PUBLIC_API_BASE = "https://api.localhost:5555"
NUXT_API_SECRET = "123"

Cualquier variable de entorno establecida dentro del archivo .env se accede usando process.env en la aplicación Nuxt durante el desarrollo y la construcción/generación.

En el tiempo de ejecución en producción, debes usar variables de entorno de la plataforma y no se utiliza .env.

Ver también guide > directory-structure > env

Espacio de Nombres app

Nuxt utiliza el espacio de nombres app en la configuración en tiempo de ejecución con claves que incluyen baseURL y cdnURL. Puedes personalizar sus valores en tiempo de ejecución configurando variables de entorno.

Este es un espacio de nombres reservado. No debes introducir claves adicionales dentro de app.

app.baseURL

Por defecto, el baseURL está configurado como '/'.

Sin embargo, el baseURL puede actualizarse en tiempo de ejecución configurando NUXT_APP_BASE_URL como una variable de entorno.

Luego, puedes acceder a esta nueva base URL usando config.app.baseURL:

/plugins/my-plugin.ts
export default defineNuxtPlugin((NuxtApp) => {
  const config = useRuntimeConfig()

  // Acceder a baseURL universalmente
  const baseURL = config.app.baseURL
})

app.cdnURL

Este ejemplo muestra cómo establecer una URL de CDN personalizada y acceder a ella usando useRuntimeConfig().

Puedes usar un CDN personalizado para servir activos estáticos dentro de .output/public usando la variable de entorno NUXT_APP_CDN_URL.

Y luego acceder a la nueva URL de CDN usando config.app.cdnURL.

server/api/foo.ts
export default defineEventHandler((event) => {
  const config = useRuntimeConfig(event)

  // Acceder a cdnURL universalmente
  const cdnURL = config.app.cdnURL
})
Ver también guide > going-further > runtime-config