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

23、vue3+vite配置环境变量实现开发、测试、生产的区分

vite开发环境、生产环境配置 - Stitchhhhh - 博客园https://www.cnblogs.com/angia/p/18220779

1、在项目根目录下(与package.json同级)新建配置文件 .env

.env:

全局环境,没有设置其他环境变量时,会加载这个文件里的内容

比如所有版本都使用的是同一个接口地址时,就可以写在这一个文件里面就行。

NODE_ENV = env
VITE_NAME='全局环境'
VITE_BASE_URL=''
VITE_TARGET ='https://baidu.com/' 

2、在项目根目录下(与package.json同级)新建配置文件 .env.development

.env.development:

开发环境下的配置文件,执行npm run dev命令,会自动加载.env.development文件

会覆盖.env这个文件里定义的环境变量

NODE_ENV = development
VITE_NAME='开发环境'
VITE_BASE_URL='/api'
VITE_TARGET ='https://baidu.com/'

3、在项目根目录下(与package.json同级)新建配置文件 .env.production

.env.production:

生产环境下的配置文件,执行npm run build命令,会自动加载.env.production文件

会覆盖 .env这个文件里定义的环境变量。

NODE_ENV = staging
VITE_NAME='生产环境'
VITE_BASE_URL = 'http://xxxxxx/api'
VITE_TARGET ='https://www.bilibili.com/'

4、在package.json 文件中的配置

dev 默认在本地开启测试环境的服务(mode='development')

start 在本地开启正式环境服务 (mode='production')

build 默认打包到正式环境(基础配置取.env.production 文件中内容)

build:env 默认打包到测试环境(基础配置取.env.development 文件中内容)

5、具体使用

  • ".env.[name]"是可以自定义的,在package.json里面做对应的名称修改。
  • 根据Vite的约定规则,只有以“VITE_”开头的变量才会在客户端被捕获
  • 捕获方式为:import.meta.env.{参数名},然后重新启动服务
  • 执行 npm run dev 时候,vite自动去读取.env.development文件里面的配置
  • 执行 npm run build 进行打包,vite自动将.env.production 的内容打包进去

输入命令:

结果:

注:文件需放在根目录下,否则无法注入

6、在vite.config.js中根据环境的不同动态切换路径

defineConfig传入一个函数,方法可以接收一个对象,对象中两个参数:command, mode
command :
  server(npm run dev)
  build(npm run build)
mode :development 或 production
defineConfig传入的方法内可以接收一个对象,
这个对象可以获取command和mode这两个属性,
所以一般.env的文件命名是.env.development 和.env.production
因为这样直接将mode传入 loadEnv(mode, process.cwd() ) 就可以了。

loadEnv 接收三个参数:
  mode:模式
  envDir:环境变量配置文件所在目录
  prefix:接受的环境变量前缀,默认为 VITE_
在vite中默认是VITE_,为 '',则加载所有环境变量

所以根据环境变量动态配置信息我们可以写成如下 

    相关文章:

  1. LLM最新的模型微调技术有哪些
  2. c语言闯算法--常用技巧
  3. LINUX 指令大全
  4. 养生,点亮健康生活
  5. 监听新打开窗口的关闭情况和iframe内系统的url改变情况
  6. 如何用“几何产品规范”让齿轮测量更精准?
  7. 如何选择适合您智能家居解决方案的通信协议?
  8. Spring Boot 项目部署启动异常问题分析与解决​:主类缺失与依赖冲突的分析
  9. Java 集合框架:数据管理的强大工具
  10. vue知识点(4)
  11. STM32F407 定时器
  12. 第九课:异步爬虫进阶:aiohttp与多线程的技术博客
  13. 【Java 和 Scala】-- Java 与 Scala 的 Assert 断言对比
  14. AI Agent系列(四) -Agent架构认知
  15. 【ODHead】BEVDet的 CenterHead的推理和拓展到蒸馏损失的算法细节
  16. java后端开发day31--集合进阶(一)-----Collection集合List集合数据结构1
  17. Hive SQL 精进系列:字符串拼接的三种常用方式
  18. 【WRF-Chem】预处理工具(Preprocessors)总结
  19. es-索引详解
  20. 论文笔记 - ULTRA-SPARSE MEMORY NETWORK
  21. 纪念|古文字学泰斗裘锡圭:“还有很多事情要做”
  22. 中华人民共和国和俄罗斯联邦关于进一步加强合作维护国际法权威的联合声明
  23. 印巴冲突升级,巴基斯坦股市重挫7.29%,创5年来最大单日跌幅
  24. 商务部:中方愿同各国一道加强合作,促进跨境电商健康可持续发展
  25. 国家发改委:目前有的核电项目民间资本参股比例已经达到20%
  26. 紧盯大V、网红带货肉制品,整治制售假劣肉制品专项行动开展