You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何import.meta.env在vite.config.ts中无法正常使用?

为什么vite.config.ts里用import.meta.env会报类型错误?

核心原因:运行环境与类型作用域的差异

  • 运行环境不同:vite.config.ts是在Node.js环境下执行的脚本,而你的React业务代码是被Vite编译后在浏览器环境运行的。Vite只会给浏览器环境的代码自动注入import.meta.env的相关变量和类型定义,Node.js环境本身没有这个全局属性,所以TypeScript会报错。
  • 类型定义的作用域不覆盖配置文件:你项目里的importMeta.d.ts是给应用业务代码用的,Vite会把它纳入业务代码的类型检查范围,但vite.config.ts作为Vite的启动配置文件,属于Node.js执行的脚本,TypeScript会用@types/node的类型规则来检查它,自然找不到import.meta.env的类型定义。

补充:Vite配置文件的正确取环境变量方式

Vite官方提供了专门在配置文件中读取环境变量的方法——loadEnv函数,示例代码:

import { defineConfig, loadEnv } from 'vite'

export default defineConfig(({ mode }) => {
  // 加载对应模式的环境变量
  const env = loadEnv(mode, process.cwd(), '')
  // 直接使用env中的变量
  console.log(env.VITE_SOME_RANDOM_ENV_VARIABLE)
  
  return {
    // 你的Vite配置项
  }
})

内容的提问来源于stack exchange,提问作者Aditya Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:40:23