前端知库

为什么前端环境变量不能存放秘密?

参考答案

客户端能够读取的配置最终必须交付给浏览器。Vite 默认通过 VITE_ 前缀暴露特定环境变量,这些值可能在构建时进入产物;即使不直接显示在界面里,也不能当作秘密。

.env 文件是否被 Git 忽略,与配置是否会进入浏览器是两件事。API 密钥、私密签名材料等应保存在合适的服务端边界。公开的服务地址、功能标记等才适合客户端配置。

环境变量通常以字符串形式进入代码,"false" 不是布尔 false,需要明确转换。mode 与 NODE_ENV 也不是可随意互换的概念。部署前应检查实际构建模式与最终资源,而不是只看本地 .env 文件。