Referencia de la API de importaciones de configuración
Añadido en:
astro@5.7.0
Este módulo virtual astro:config expone una versión no exhaustiva, serializable y con seguridad de tipos de la configuración de Astro. Hay dos submódulos para acceder a diferentes subconjuntos de tus valores de configuración: /client y /server.
Todos los valores de configuración disponibles pueden accederse desde astro:config/server. Sin embargo, para código ejecutado en el cliente, solo aquellos valores expuestos por astro:config/client estarán disponibles. Esto protege tu información haciendo solo algunos datos disponibles para el cliente.
Importaciones desde astro:config/client
Sección titulada “Importaciones desde astro:config/client”Los siguientes helpers se importan desde el directorio client del módulo virtual de configuración.
import { i18n, trailingSlash, base, build, site, compressHTML,} from "astro:config/client";Usa este submódulo para código del lado del cliente:
import { trailingSlash } from "astro:config/client";
function addForwardSlash(path) { if (trailingSlash === "always") { return path.endsWith("/") ? path : path + "/" } else { return path }}Ver más sobre las importaciones de configuración disponibles desde astro:config/client:
Importaciones desde astro:config/server
Sección titulada “Importaciones desde astro:config/server”Los siguientes helpers se importan desde el directorio server del módulo virtual de configuración.
import { i18n, trailingSlash, base, build, site, srcDir, cacheDir, outDir, publicDir, root, compressHTML,} from "astro:config/server";Estas importaciones incluyen todo lo disponible desde astro:config/client así como información sensible adicional sobre la configuración de tu sistema de archivos que no es segura para exponer al cliente.
Usa este submódulo para código del lado del servidor:
import { integration } from "./integration.mjs";
export default defineConfig({ integrations: [ integration(), ]});import { outDir } from "astro:config/server";import { writeFileSync } from "node:fs";import { fileURLToPath } from "node:url";
export default function() { return { name: "internal-integration", hooks: { "astro:build:done": () => { let file = new URL("result.json", outDir); // generate data from some operation let data = JSON.stringify([]); writeFileSync(fileURLToPath(file), data, "utf-8"); } } }}Ver más sobre las importaciones de configuración disponibles desde astro:config/server:
i18ntrailingSlashbasebuild.formatbuild.clientbuild.serverbuild.assetsPrefixsitesrcDircacheDiroutDirpublicDirrootcompressHTML
Importaciones desde astro/config
Sección titulada “Importaciones desde astro/config”Los siguientes helpers se importan desde el módulo regular de configuración:
import { defineConfig, envField, fontProviders, getViteConfig, memoryCache, logHandlers, mergeConfig, passthroughImageService, sessionDrivers, sharpImageService, validateConfig,} from "astro/config";defineConfig()
Sección titulada “defineConfig()”Type: (config: AstroUserConfig) => AstroUserConfig
Configura tu proyecto con seguridad de tipos en un archivo de configuración de Astro soportado.
envField
Sección titulada “envField”Type: object
astro@5.0.0
Describe los tipos de datos soportados al definir variables de entorno.
Cada tipo de dato debe definir el tipo de variable con context ("client" o "server") y access ("secret" o "public"). Además, puedes definir un valor por defecto, especificar si la variable es opcional (por defecto false), y algunos tipos de datos proporcionan métodos de validación opcionales.
envField.string()
Sección titulada “envField.string()”Type: (options: StringFieldInput) => StringField
Define una variable de entorno de tipo string. Puedes realizar validación de string con Zod usando las siguientes propiedades: max, min, length, url, includes, startsWith y endsWith.
El siguiente ejemplo define la estructura esperada para una variable de entorno que almacena una URL de API:
import { defineConfig, envField } from "astro/config";
export default defineConfig({ env: { schema: { API_URL: envField.string({ context: "client", access: "public", optional: false, default: "", min: 12, url: true, includes: "astro", startsWith: "https", }), } }})envField.number()
Sección titulada “envField.number()”Type: (options: NumberFieldInput) => NumberField
Define una variable de entorno de tipo number. Puedes realizar validación de número con Zod usando las siguientes propiedades: gt, lt, min, max y int.
El siguiente ejemplo define la estructura esperada para una variable de entorno que almacena un puerto de API:
import { defineConfig, envField } from "astro/config";
export default defineConfig({ env: { schema: { API_PORT: envField.number({ context: "server", access: "public", optional: true, default: 4321, min: 2, int: true, }), } }})envField.boolean()
Sección titulada “envField.boolean()”Type: (options: BooleanFieldInput) => BooleanField
Define una variable de entorno de tipo booleano.
El siguiente ejemplo define la estructura esperada para una variable de entorno que almacena si las analíticas están habilitadas:
import { defineConfig, envField } from "astro/config";
export default defineConfig({ env: { schema: { ANALYTICS_ENABLED: envField.boolean({ context: "client", access: "public", optional: true, default: true, }), } }})envField.enum()
Sección titulada “envField.enum()”Type: (options: EnumFieldInput<T>) => EnumField
Define una variable de entorno de tipo enum proporcionando los valores permitidos como un array.
El siguiente ejemplo define la estructura esperada para una variable de entorno que almacena el modo de depuración configurado:
import { defineConfig, envField } from "astro/config";
export default defineConfig({ env: { schema: { DEBUG_MODE: envField.enum({ context: "server", access: "public", values: ['info', 'warnings', 'errors'], // required optional: true, default: 'errors', }), } }})fontProviders
Sección titulada “fontProviders”Type: object
astro@6.0.0
Describe el proveedor integrado usado para obtener la fuente configurada.
getViteConfig()
Sección titulada “getViteConfig()”Type: (userViteConfig: ViteUserConfig, inlineAstroConfig?: AstroInlineConfig) => ViteUserConfigFn
Recupera la configuración de Vite a usar combinando un objeto de configuración personalizado de Vite y un objeto de configuración opcional de Astro. Esto es útil para configurar Vitest para testing.
memoryCache()
Sección titulada “memoryCache()”Tipo: (config?: MemoryCacheProviderOptions) => CacheProviderConfig<MemoryCacheProviderOptions>
Ver memoryCache() en la referencia del proveedor de caché.
logHandlers
Sección titulada “logHandlers”Type: object
astro@7.0.0
Nuevo
Describe los log handlers integrados disponibles que pueden usarse para configurar un logger en tu configuración de Astro.
mergeConfig()
Sección titulada “mergeConfig()”Ver mergeConfig() en la referencia de la API Programática.
passthroughImageService()
Sección titulada “passthroughImageService()”Type: () => ImageServiceConfig
Recupera un servicio de imágenes no-op. Esto es útil cuando tu adaptador no soporta la optimización de imágenes Sharp integrada de Astro y quieres usar los componentes <Image /> y <Picture />.
El siguiente ejemplo define passthroughImageService() como servicio de imágenes en el archivo de configuración de Astro para evitar el procesamiento de imágenes con Sharp:
import { defineConfig, passthroughImageService } from "astro/config";
export default defineConfig({ image: { service: passthroughImageService() }});sessionDrivers
Sección titulada “sessionDrivers”Type: object
astro@5.7.0
Describe el driver integrado usado para el almacenamiento de sesiones.
El siguiente ejemplo configura el driver de Redis para habilitar sesiones:
import { defineConfig, sessionDrivers } from "astro/config";
export default defineConfig({ session: { driver: sessionDrivers.redis({ url: process.env.REDIS_URL }), }})sharpImageService()
Sección titulada “sharpImageService()”Type: (config?: SharpImageServiceConfig) => ImageServiceConfig
astro@2.4.1
Recupera el servicio Sharp usado para procesar los assets de imágenes de Astro. Esto toma un objeto opcional que describe las opciones de configuración para Sharp.
validateConfig()
Sección titulada “validateConfig()”Ver validateConfig() en la referencia de la API Programática.