网站首页 > 博客文章 正文
前言
假如你的Vue项目需要在多个服务器部署,若使用代理的模式,每个环境都需要先改IP地址及端口,再打包,非常的麻烦
vue2版本(基于webpack)的动态ip及端口分环境打包
- 在public目录下,新建config.js文件
- 在config.js文件中编写对应的分别打包环境
- 把config.js在index.html中引入
- 创建对应的 .env.dev , .env.sit , .env.prod 三个环境
在每个环境中写入对应的环境变量
- 处理package.json中的scripts的打包入口
- 最后,修改所需要动态ip及端口的地方
如封装的request请求等
// 创建axios实例对象, 添加全局配置
const service = axios.create({
baseURL: window.basic[process.env.NODE_ENV].base + '/'
})
在vue2中,process.env.NODE_ENV拿到的就是对应的环境变量
window.basic获取到的就是对应的全局参数
vue2版本(基于webpack)的分环境打包
如上差别不大,不过在 .env.dev , .env.sit , .env.prod 这三个环境中,分别写入对应的环境,就不用动态的去引入ip和端口号了。
并且,在需要用到的地方,也不用去区分,直接全局引用就可以了
vue3版本(基于vite)的动态ip及端口分环境打包
跟vue2差别不大,先写config.js文件,然后在index.html中引用。
但这里需要注意的是,vue3中,需要使用VITE_APP_xx (xx可随意填写变量名)
如:
NODE_ENV = demo
VITE_APP_ENV = 'dev'
但是在vue3中,使用这个变量,就不是跟vue2一样,使用process.env.xxx了
而是使用import.meta.env.VITE_APP_ENV这种写法
如:
const baseURL: string = window.basic[import.meta.env.VITE_APP_ENV as any].base + '/' ?? ''
vue3版本(基于vite)的分环境打包
这个就是vue2版本的分环境打包和变量使用注意一下
在typescript里,需要去处理一下window对象,以及找不到meta对象和env对象
在tsconfig.json里,找到types,在里面添加"vite/client"
最后
公众号:小何成长,佛系更文,都是自己曾经踩过的坑或者是学到的东西
有兴趣的小伙伴欢迎关注我哦,我是:何小玍。大家一起进步鸭
猜你喜欢
- 2025-01-04 vue3+ts+vite怎么配置es6转es5?
- 2025-01-04 Vue Demi是如何让你的库同时支持Vue2和Vue3的
- 2025-01-04 Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库(超清完结)
- 2025-01-04 在vue3中更丝滑的去使用tsx
- 2025-01-04 用vue3.2+ts+element搭建了个后台框架,却没有项目给我做
- 2025-01-04 深入浅出虚拟 DOM 和 Diff 算法,及 Vue2 与 Vue3 中的区别
- 2025-01-04 Vue vben admin - 基于 Vue3 / Ant Design Vue 的高颜值管理后台UI框架
- 2025-01-04 使用Vite和TypeScript带你从零打造一个属于自己的Vue3组件库
- 2025-01-04 只会Vue的我,上班第一天就要我写React+TS,是种什么样的体验?
- 2025-01-04 基于 Vue3+Ts 后台前端管理系统Vue3-Admin
你 发表评论:
欢迎- 最近发表
-
- 告别频繁登录!Nuxt3 + TS + Vue3实战:双Token无感刷新方案全解析
- SpringBoot实现单点登录(SSO)的4种方案
- 随机密聊 匿名聊天室程序源码(随机匿名聊天在线)
- SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!
- Java 微服务从源码实战开始 | Gitee 项目推荐
- 轻量级埋点sdk搭建,便捷更全面(埋点sdk是什么)
- Spring Boot 实现文件秒传功能(springboot上传文件到指定文件夹)
- 项目中不用redis分布式锁,怎么防止用户重复提交?
- SpringBoot项目日志打印traceId生成
- 如何实现PC端网站扫码登录操作?(网页 扫码)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)