vite的import.meta.env.DEV的问题

按照文档用import.meta.env.DEV
但是报错了Cannot read properties of undefined (reading 'DEV')
vite版本:2.9.5,我以前用2.3.7版本就不会报错,这是做了什么改动?
image.png
image.png

为了不影响业务,我改用了process.env.NODE_ENV....

阅读 12.4k
5 个回答

VITE_xxxx

必须是这种格式,防止敏感变量泄露

.env.*.local 文件应是本地的,可以包含敏感变量。你应该将 .local 添加到你的 .gitignore 中,以避免它们被 git 检入。

由于任何暴露给 Vite 源码的变量最终都将出现在客户端包中,VITE_* 变量应该不包含任何敏感信息。
官网地址:
https://vitejs.cn/guide/env-a...

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

vite官方已经说了,为了防止意外地将一些环境变量泄漏到客户端,只有以 VITE_ 为前缀的变量才会暴露给经过 vite 处理的代码,由于任何暴露给 Vite 源码的变量最终都将出现在客户端包中,VITE_* 变量应该不包含任何敏感信息。

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入

为啥上面的回答都好奇怪。
import.meta.env.DEV 不是跑项目之后自动有的吗?题主的报错信息难道不是 import.meta.env 获取不到,是 undefined 了吗?

新手上路,请多包涵

前3个全是文不对题,问题都没读完就回答了
我也碰到了同样的问题,在官方看到这个还没修复,https://github.com/vitejs/vit...

最后使用这种方法解决,能取到自己配置的环境变量,但是import.meta.env.DEV 还是 undefined

解决方式,使用loadEnv

import { defineConfig, loadEnv } from 'vite'
export default (mode) => {
  //这样取
  const env = loadEnv(mode, process.cwd())
  return defineConfig({
  })
})

首次运行还是没有,reload后就有了,我服了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题