代码里 import.meta.env.VITE_API_URL 打印出来是 undefined,.env 文件里明明写了这一行。日志里能对上时间点,这种反而好排。

只有 VITE_ 前缀的变量才会注入客户端,而且 .env 要放在项目根目录,按当前 mode 选对应文件。这一点先确认清楚,后面就不用反复试。

# .env.production
VITE_API_URL=https://api.example.com
# 使用
console.log(import.meta.env.VITE_API_URL)

这次卡住的地方就在「vite 环境变量」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。

改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:确认变量名带 VITE_ 前缀;把文件改成 .env.production 对应模式;改完重启 dev server 再看。

结果对不对很好判断,页面上能打印出接口地址,构建产物里也替换成了真实值。

作者 9823189