#env validate

1 messages · Page 1 of 1 (latest)

pulsar mountainBOT
#

Hi @sweet rapids. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:

#

No hay nada en la documentación que hable explícitamente de “validar” variables de entorno (por ejemplo, con un esquema) antes de arrancar la app, así que lo siguiente es una interpretación basada solo en lo que sí aparece en las guías.

En Next.js tienes estos puntos clave:

  1. Carga de variables
    Next.js carga automáticamente las variables desde .env* a process.env siguiendo un orden concreto (.env.local, .env.development, etc.). [Load order]

  2. Uso en next.config.*
    next.config.js / next.config.mjs es un módulo de Node que se ejecuta en las fases de servidor y build, y ahí puedes leer process.env sin problema. [next.config]
    También puedes definir variables que se inyectan al bundle con la opción env de next.config. [env config]

  3. Validación “temprana”
    La documentación no describe un patrón oficial de “validación de env” (por ejemplo, con Zod/Joi) ni dice que deba hacerse en next.config.mjs.
    Lo que sí deja claro es:

    • Las .env* se cargan antes de que se ejecute tu código de Next. [Env guide]
    • next.config.* se ejecuta en Node, por lo que técnicamente podrías leer process.env ahí y lanzar errores si falta algo. [next.config]

Resumiendo:

#
  • Sí es posible hacer una validación en next.config.mjs porque ahí tienes acceso a process.env y si lanzas un error, fallará el build/arranque.
  • Pero la documentación oficial no lo presenta como “la forma recomendada” ni da un ejemplo concreto de validación; solo explica cómo se cargan y cómo se exponen las variables.

Si necesitas algo estrictamente alineado con docs, lo único “oficial” es: usar .env*, process.env, y opcionalmente env en next.config.* para exponer valores al bundle. [Env guide; env config]

Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:

#

@sweet rapids Kapa.ai is still learning and improving, please let me know how I did by reacting below.