Перейти к содержимому

Справочник API импорта конфигурации

Добавлено в: astro@5.7.0

Этот виртуальный модуль astro:config предоставляет неполную, сериализуемую, типобезопасную версию конфигурации Astro. Существует два подмодуля для доступа к различным подмножествам значений вашей конфигурации: /client и /server.

Все доступные значения конфигурации могут быть получены из astro:config/server. Однако для кода, выполняемого на клиенте, будут доступны только те значения, которые открыты через astro:config/client. Это защищает вашу информацию, делая доступными для клиента только определенные данные.

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

Используйте этот подмодуль для клиентского кода:

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

Узнайте больше об импорте конфигурации, доступном из astro:config/client:

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

Этот импорт включает все, что доступно из astro:config/client, а также дополнительную конфиденциальную информацию о конфигурации вашей файловой системы, которую небезопасно раскрывать клиенту.

Используйте этот подмодуль для серверного кода:

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);
// генерируем данные из какой-либо операции
let data = JSON.stringify([]);
writeFileSync(fileURLToPath(file), data, "utf-8");
}
}
}
}

Узнайте больше об импорте конфигурации, доступном из astro:config/server: