Usando variables de entorno
¡Encuentra más información sobre la API astro:env
experimental para variables de entorno seguras!
Astro usa el soporte integrado de Vite para las variables de entorno, que se reemplazan estáticamente en tiempo de compilación y te permite usar cualquiera de sus métodos para trabajar con ellas.
Ten en cuenta que todas las variables de entorno estarán disponibles en el servidor, mientras que solo las variables de entorno con el prefijo PUBLIC_
estarán disponibles en el cliente por motivos de seguridad.
En este ejemplo, PUBLIC_ANYBODY
(accesible mediante import.meta.env.PUBLIC_ANYBODY
) estará disponible tanto en el servidor como el cliente, mientras que SECRET_PASSWORD
(accesible mediante import.meta.env.SECRET_PASSWORD
) estará disponible solo en el servidor.
Los archivos .env
no son cargados dentro de archivos de configuración.
Variables de entorno predeterminadas
Sección titulada Variables de entorno predeterminadasAstro incluye algunas variables de entorno por defecto:
import.meta.env.MODE
: El modo en el que se ejecuta tu proyecto. Esto esdevelopment
al ejecutarastro dev
yproduction
al ejecutarastro build
.import.meta.env.PROD
:true
si tu proyecto se está ejecutando en producción;false
en caso contrario.import.meta.env.DEV
:true
si tu proyecto se está ejecutando en desarrollo;false
en caso contrario. Siempre lo contrario deimport.meta.env.PROD
.import.meta.env.BASE_URL
: La URL base desde la que se sirve tu proyecto. Esto está determinado por la opción de configuraciónbase
.import.meta.env.SITE
: Esto se establece en la opciónsite
especificada enastro.config
de tu proyecto.import.meta.env.ASSETS_PREFIX
: El prefijo para los enlaces de activos generados por Astro si se establece la opción de configuraciónbuild.assetsPrefix
. Esto se puede usar para crear enlaces de activos no manejados por Astro.
Úsalas como cualquier otra variable de entorno.
Configurando variables de entorno
Sección titulada Configurando variables de entornoArchivos .env
Sección titulada Archivos .envLas variables de entorno se pueden cargar desde los archivos .env
en la raíz de tu proyecto.
También puedes adjuntar un modo (ya sea production
o development
) al nombre del archivo, como .env.production
o .env.development
, lo que hace que las variables de entorno solo tengan efecto en ese modo.
Simplemente crea un archivo .env
en la raíz de tu proyecto y agrega algunas variables.
Para obtener más información sobre los archivos .env
, consulta la documentación de Vite.
Usando la CLI
Sección titulada Usando la CLITambién puedes agregar variables de entorno a medida que ejecuta su proyecto:
Obteniendo variables de entorno
Sección titulada Obteniendo variables de entornoEn Astro se accede a las variables de entorno con import.meta.env, utilizando la característica import.meta añadida en ES2020, en lugar de process.env.
Por ejemplo, usa import.meta.env.PUBLIC_POKEAPI
para obtener la variable de entorno PUBLIC_POKEAPI
.
Cuando se utiliza SSR, se puede acceder a las variables de entorno en tiempo de ejecución en función del adaptador SSR que se esté utilizando. Con la mayoría de los adaptadores puedes acceder a las variables de entorno con process.env
, pero algunos adaptadores funcionan de forma diferente. Para el adaptador Deno, utilizará Deno.env.get()
. Mira cómo acceder al runtime de Cloudflare para manejar las variables de entorno cuando utilices el adaptador de Cloudflare. Astro comprobará primero el entorno del servidor en busca de variables, y si no existen, Astro las buscará en los archivos .env.
IntelliSense para TypeScript
Sección titulada IntelliSense para TypeScriptDe forma predeterminada, Vite proporciona una definición de tipos para import.meta.env
en astro/client.d.ts
.
Si bien puedes definir más variables de entorno personalizadas en los archivos .env.[mode]
, es posible que desees obtener TypeScript IntelliSense para las variables de entorno definidas por el usuario que tienen el prefijo PUBLIC_
.
Para lograr esto, puedes crear un archivo env.d.ts
en src/
y configurar ImportMetaEnv
así: