当前位置: 首页 > news >正文

在 Vite 中,环境变量的处理方式与传统的 Node.js 环境有所不同

在 Vite 中,环境变量的处理方式与传统的 Node.js 环境有所不同,这可能是导致你遇到问题的原因。

当你使用 vite build --mode test 时,Vite 会:

  1. 加载 .env.test 文件中的环境变量
  2. 自动设置 import.meta.env.MODE 为 “test”
  3. 不会自动设置 process.env.NODE_ENV

在 Vite 中,process.env 并不是默认提供的,而且官方推荐使用 import.meta.env 来访问环境变量。

要解决你的问题,可以有两种方案:

  1. 使用 Vite 提供的模式变量:
export const adminApi = import.meta.env.MODE === 'test' ? '/test-admin' : '/admin';
  1. 在 .env.test 文件中显式定义 NODE_ENV:
# .env.test 文件
NODE_ENV=test

然后在代码中使用(需要通过 VITE_ 前缀暴露):

# .env.test 文件
VITE_NODE_ENV=test# 代码中
export const adminApi = import.meta.env.VITE_NODE_ENV === 'test' ? '/test-admin' : '/admin';

Vite 对环境变量有特殊处理,只有以 VITE_ 为前缀的变量才会被暴露到客户端代码中,除非你通过 envPrefix 配置修改了这个前缀。

所以最推荐的方式是使用 Vite 内置的 import.meta.env.MODE 来判断当前模式,这样最符合 Vite 的设计理念。

http://www.dtcms.com/a/374942.html

相关文章:

  • 不同射频对应不同mac地址(查找无线用户连接AP信息)
  • 《红色脉络:一部PLMN在中国的演进史诗 (1G-6G)》 第9篇 | 5G:领跑者的姿态——SA/NSA之争与中国的战略选择
  • 36页可编辑PPT | 某制造集团灯塔工厂解决方案
  • 基于springboot+vue的厨艺交流平台的设计与实现(源码+论文+部署+安装)
  • 【华为OD】5G网络建设
  • 使用LLM(Ollama部署)为Bertopic确定的主题命名
  • C++容器:list
  • PAT 1178 File Path
  • ESP32开发:ubuntu22.04 下esp-idf开发环境搭建
  • JWT全面理解
  • C++:类和对象
  • Linux(3)|入门的开始:Linux基本指令(3)
  • REST接口幂等设计深度解析
  • 在Word和WPS文字中便捷切换英文段落大小写
  • 【华为OD】寻找连续区间
  • 渗透测试信息收集步骤与工具详解
  • #C语言——刷题攻略:牛客编程入门训练(十):攻克 循环控制(二),轻松拿捏!
  • 乐吾乐大屏可视化组态软件【SQL数据源】
  • 打工人日报#20250909
  • PyTorch中的flatten操作详解:从start_dim=1说起
  • 上网行为审计软件应该如何选择?适配图书馆管理的上网行为审计软件推荐
  • 计算机网络第五章(1)——传输层(概念 + UDP)
  • AI 时代,我们是否应该重温极限编程?
  • Protobuf 新版“调试表示为什么有链接?为什么会打码?我该怎么改代码?
  • php 使用html 生成pdf word wkhtmltopdf 系列1
  • vcsa6.0 升级6.7
  • python中的深拷贝与浅拷贝详细介绍
  • 【Java】Hibernate二级缓存下
  • R 包的管理涉及两个概念:二进制包的下载缓存位置和包的最终安装位置。你看到的临时路径只是包的下载缓存,它并不会长期占用C盘空间
  • Android 项目:画图白板APP开发(四)——笔锋(单 Path)