Vite 配置环境变量 import.meta.env 时出现 ts 错误
问题描述:
使用 Vite 2.x 构建项目时,在 .evn 文件中创建了自定义环境变量 VITE_BASE_URL
但在项目中使用时出现 Typescript 错误:
分析原因:
这是因为没有引入 ImportMeta 的类型声明文件,Vite 有提供 vite/client.d.ts 来做类型声明,在 tsconfig.json 中引入即可
解决方案:
在 tsconfig.json 中添加以下配置:
{
"compilerOptions": {
"types": ["vite/client"]
}
}
然后就能推断出自定义环境变量的类型为: string | boolean | undefined
如过可以确定这个变量为 string 类型,可以加类型断言 as string,但更合适的做法是创建新的类型声明文件 env.d.ts
/// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_BASE_URL: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
可以将 env.d.ts 文件放到 src 目录下,无需再做别的配置,ts 就会引入这个文件
如果放到别的地方,比如根目录,就需要调整 tsconfig.json 的配置
{
"compilerOptions": {
"types": ["./env"]
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」