跳转到内容

配置导入 API 参考

添加于: astro@5.7.0

这个虚拟模块 astro:config 公开了一个非详尽、可序列化、类型安全的 Astro 配置版本。有两个子模块用于访问配置值的不同子集:/client/server

所有可用的配置值都可以从 astro:config/server 访问。但是,对于在客户端执行的代码,只有由 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 可用的配置导入

import {
i18n,
trailingSlash,
base,
build,
site,
srcDir,
cacheDir,
outDir,
publicDir,
root,
} 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);
// generate data from some operation
let data = JSON.stringify([]);
writeFileSync(fileURLToPath(file), data, "utf-8");
}
}
}
}

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

贡献 社区 赞助