跳转到内容

实验性序列化配置

类型: boolean
默认值: false

添加于: astro@5.2.0

此功能允许你访问 astro:config 虚拟模块,该模块通过两个子模块暴露出非详尽的、可序列化的、类型安全的 Astro 配置版本。

有关此实验性 API 的完整概述和反馈,请参阅 序列化清单 RFC

要启用该虚拟模块,请将 experimental.serializeConfig 功能标志添加到你的 Astro 配置中:

astro.config.mjs
import { defineConfig } from "astro/config"
export default defineConfig({
experimental: {
serializeConfig: true
}
})

这样,Astro 项目中的任何文件都可以使用配置值:

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/server 访问到。但是,对于在客户端上执行的代码,只有由 astro:config/client 暴露出的那些值才可用。

客户端子模块允许你访问 astro:config/server 中可以安全地暴露给浏览器的配置值的子集,例如 trailingSlashbuild.formati18n 等。将此子模块用于在客户端上执行的客户端代码。

这是一项尚处在开发阶段的功能。有关 astro:config/client 中可用的配置值的完整、最新的列表,请参阅 功能 RFC 中建议的 API

服务器子模块允许你从 astro.config.mjs 访问一组非详尽的配置值。这包括 astro:config/client 的值,例如 trailingSlashi18n,但也包括有关文件系统配置的更敏感信息,这些信息不能安全地暴露给客户端,例如 srcDircacheDiroutDir。因此,尝试使用它们也许会引发错误。

这是一项尚处在开发阶段的功能。有关 astro:config/client 中可用的配置值的完整、最新的列表,请参阅 功能 RFC 中建议的 API

贡献 社区 赞助