Vite迁移后为啥import.meta.env取不到环境变量?

Prog.怡企 阅读 57

我从Webpack迁移到Vite后,发现原来能用的process.env没了,改用import.meta.env却总是undefined,明明在.env文件里定义了变量。

我试过加VITE_前缀,也重启了开发服务器,但还是不行。比如我的.env文件是这样写的:

VITE_API_URL=https://dev.example.com

然后在代码里用import.meta.env.VITE_API_URL读取,结果是undefined,这到底哪里出问题了?

我来解答 赞 7 收藏
二维码
手机扫码查看
1 条解答
UX雨路
UX雨路 Lv1
肯定是文件放错位置了,.env必须放在项目根目录(跟package.json同级),放子目录Vite是读不到的。如果你用的是TypeScript,还得在src下建个env.d.ts声明一下类型,不然编辑器也会提示undefined。

/// 

interface ImportMetaEnv {
readonly VITE_API_URL: string
// 其他环境变量也写在这里
}

interface ImportMeta {
readonly env: ImportMetaEnv
}
点赞 3
2026-03-04 12:08