Pular para o conteúdo

Referência da API de importações de configuração

Este módulo virtual astro:config expõe uma versão não exaustiva, serializável e tipada da configuração do Astro. Existem dois submódulos para acessar diferentes subconjuntos dos seus valores de configuração: /client e /server.

Todos os valores de configuração disponíveis podem ser acessados a partir de astro:config/server. No entanto, para código executado no cliente, apenas os valores expostos por astro:config/client estarão disponíveis. Isso protege suas informações, disponibilizando apenas alguns dados para o cliente.

Importando de astro:config/client

import {
  i18n, 
  trailingSlash,
  base,
  build,
  site,
} from "astro:config/client";

Utilize este submódulo para código do lado do cliente:

import { trailingSlash } from "astro:config/client";

function addForwardSlash(path) {
  if (trailingSlash === "always") {
    return path.endsWith("/") ? path : path + "/"
  } else {
    return path
  }
}

Veja mais sobre as configurações de importação disponíveis em astro:config/client:

Importando de astro:config/server

import {
  i18n, 
  trailingSlash,
  base,
  build,
  site,
  srcDir,
  cacheDir,
  outDir,
  publicDir,
  root,
} from "astro:config/server";

Essas importações incluem tudo que está disponível em astro:config/client, além de informações adicionais e sensíveis sobre a configuração do sistema de arquivos, que não são seguras para expor ao cliente.

Utilize este submódulo para código do lado do 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);
        // gerar dados a partir de alguma operação
        let data = JSON.stringify([]);
        writeFileSync(fileURLToPath(path), data, "utf-8");
      }
    }
  }
}

Veja mais sobre as configurações de importação disponíveis em astro:config/server:

Contribua Comunidade Sponsor