Saltearse al contenido

Referencia de la API de importaciones de configuración

Agregado en: astro@5.7.0 Nuevo

Este módulo virtual astro:config expone una versión serializable, tipada y no exhaustiva 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 el código ejecutado en el cliente, solo estarán disponibles aquellos valores expuestos por astro:config/client. Esto protege tu información haciendo que solo algunos datos estén disponibles en el cliente.

Importaciones desde astro:config/client

Sección titulada Importaciones desde astro:config/client
import {
i18n,
trailingSlash,
base,
build,
site,
} from "astro:config/client";

Usa este submódulo para código del lado del cliente:

src/utils.js
import { trailingSlash } from "astro:config/client";
function addForwardSlash(path) {
if (trailingSlash === "always") {
return path.endsWith("/") ? path : path + "/";
} else {
return path;
}
}

Consulta 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
import {
i18n,
trailingSlash,
base,
build,
site,
srcDir,
cacheDir,
outDir,
publicDir,
root,
} from "astro:config/client";

Estas importaciones incluyen todo lo disponible desde astro:config/client así como información adicional sensible sobre la configuración de tu sistema de archivos que no es seguro exponer al cliente.

Usa este submódulo para código del lado del servidor:

astro.config.mjs
import { integration } from "./integration.mjs";
export default defineConfig({
integrations: [integration()],
});
integration.mjs
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);
// generar datos de alguna operación
let data = JSON.stringify([]);
writeFileSync(fileURLToPath(path), data, "utf-8");
},
},
};
}

Consulta más sobre las importaciones de configuración disponibles desde astro:config/server:

Contribuir Comunidad Patrocinador