跳转到内容

配置导入 API 参考

添加于: astro@5.7.0

虚拟模块 astro:config 暴露了 Astro 配置的非完整、可序列化、类型安全的版本。它通过两个子模块提供了不同维度的配置访问:[/client] 和 [/server]。

所有可用的配置值都可以通过 astro:config/server 来获取。但是,在客户端执行的代码,仅通过 astro:config/client 暴露客户端可用的安全配置。这种客户端受限访问的方法,可以避免你的敏感信息泄露。

astro:config/client 导入

段落标题 从 astro:config/client 导入
import {
i18n,
trailingSlash,
base,
build,
site,
} 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 导入的更多可用配置:

astro:config/server 导入

段落标题 从 astro:config/server 导入
import {
i18n,
trailingSlash,
base,
build,
site,
srcDir,
cacheDir,
outDir,
publicDir,
root,
} from "astro:config/client";

这些内容包括了从 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);
// generate data from some operation
let data = JSON.stringify([]);
writeFileSync(fileURLToPath(path), data, "utf-8");
}
}
}
}

查看从 astro:config/server 导入的更多可用配置:

贡献 社区 赞助