vite环境变量配置

目前大多数项目都使用第三方库dotenv(vite中已内置dotenv)

dotenv会自动读取.env文件,并解析这个文件中的对应环境变量,并将其注入到process中,

js 复制代码
export default defineConfig(({ command, mode }) => {
  console.log("command", command);
  // 获取 env
  /**
   * mode:执行命令是npm run dev --mode development,代表dev环境
   * process.cwd(): 获取当前的目录
   * 第三个参数:指定读取那个env文件,默认为.env
   */
  // vite.config.js 会先读取.env文件,解析配置并把内容放到一个对象里
  /**
   * 若是执行的是dev环境,则会在把.env.development配置里的内容解析出来,放到对象中
   * 若是执行的是build环境,则会在把.env.production配置里的内容解析出来,放到对象中
   * 此对象里的内容会覆盖掉.env里获取到的对象内容
   */
  const env = loadEnv(mode, process.cwd(), "");
  //   console.log("env:", env);
  //  return envConfig[command]();
});
  • 客户端获取.env里的变量

vite 会将对应的环境变量注入到import.meta.env里去,同时vite也做了一层拦截,会把.env中不是VITE开头的配置变量不暴露给客户端。

如.env 里配置 VITE_APP_KEY 就可读取出来。

  • 若是用户不想使用VITE前缀去把配置暴露给客户端,也可以使用envPrefix在vite.config.js 中配置自定义的前缀

vite.config.js 配置

js 复制代码
import { defineConfig } from "vite";

export default defineConfig({
  envPrefix: "ENV_",
});

.env.development 配置

env 复制代码
ENV_APP_KEY: '120'

客户端通过import.meta.env 获取配置内容

js 复制代码
// 获取到 ENV_APP_KEY  120
console.log("import.meta.env:", import.meta.env);
相关推荐
爱学习的程序媛29 分钟前
【Web前端】深入解析JavaScript异步编程
开发语言·前端·javascript·ecmascript·web
梧桐16830 分钟前
马克沁机枪上阵(二):前线开辟—Claude Code 如何用一天打通前端
前端
是上好佳佳佳呀33 分钟前
【前端(一)】HTML 知识梳理:从结构到常用标签
前端·html
楚轩努力变强37 分钟前
2026 年前端进阶:端侧大模型 + WebGPU,从零打造高性能 AI 原生前端应用
前端·typescript·大模型·react·webgpu·ai原生·高性能前端
放下华子我只抽RuiKe540 分钟前
深度学习 - 01 - NLP自然语言处理基础
前端·人工智能·深度学习·神经网络·自然语言处理·矩阵·easyui
酉鬼女又兒1 小时前
零基础入门前端 第十三届蓝桥杯省赛 :水果拼盘 Flex一篇过(可用于备赛蓝桥杯Web应用开发)
前端·css·职场和发展·蓝桥杯·css3
wefly20171 小时前
m3u8live.cn:免安装 HLS 在线播放器,流媒体调试效率神器
开发语言·javascript·python·django·ecmascript·hls.js 原理·m3u8 解析
J_liaty1 小时前
JavaScript 基础知识全解析:从入门到精通
开发语言·javascript
weixin199701080161 小时前
《苏宁商品详情页前端性能优化实战》
前端·性能优化