跳转到内容

实验性的原始环境变量值

类型: boolean
默认值: false

新增于: astro@5.12.0

Astro 允许你为环境变量配置一个类型安全的模式,并将通过 astro:env 导入的变量转换为预期的类型。

然而,在某些情况下,Astro 也会转换通过 import.meta.env 使用的环境变量,这可能会阻止访问某些值,例如字符串 "true"(被转换为布尔值)和 "1"(被转换为数字)。

experimental.rawEnvValues 标志禁用了对从 process.env 填充的 import.meta.env 值的强制转换,允许你使用原始值。

要禁用 Astro 对通过 import.meta.env 使用的值的强制转换,请在你的 Astro 配置中将 experimental.rawEnvValues 标志设置为 true

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

启用此实验性标志后,将不再将字符串值转换为布尔值或数字。这使 import.meta.env 在 Astro 中的行为与 Vite 保持一致。

在未来的主版本中,Astro 将默认不再对 import.meta.env 的值进行强制转换,但你可以通过使用 experimental.rawEnvValues 标志提前选择加入未来的行为,并在必要时相应地更新你的项目

如果你之前依赖于此强制转换,你可能需要更新你的项目代码以手动应用它

src/components/MyComponent.astro
const enabled: boolean = import.meta.env.ENABLED
const enabled: boolean = import.meta.env.ENABLED === "true"

如果你在 Astro 中需要强制转换,我们建议你使用 astro:env

贡献 社区 赞助