vite环境变量相关

环境变量:根据环境的不同,灵活的自动读取相应的变量。避免了手动修改。

import path from 'path'
import postCssPxToRem from 'postcss-pxtorem'
import { defineConfig, loadEnv } from 'vite'
import createVitePlugins from './vite/plugins'
import copy from 'rollup-plugin-copy'
import { visualizer } from 'rollup-plugin-visualizer'
import { compression } from 'vite-plugin-compression2'// import viteCompression from 'vite-plugin-compression';
// https://vitejs.dev/config/
export default defineConfig(({ mode, command }) => {const env = loadEnv(mode, process.cwd())const { VITE_APP_ENV } = envconst devProxy = {// 监控视频接口请求地址'/dev-api/api/play': {target: 'https://61',changeOrigin: true,rewrite: (p) => p.replace(/^\/dev-api/, '/prod-api'),},'/dev-api/file': {target: 'https://61407',changeOrigin: true,rewrite: (p) => p.replace(/^\/dev-api/, '/prod-api'),},"/dev-api": {target: "https://667x7",changeOrigin: true,rewrite: (p) => p.replace(/^\/dev-api/, "/prod-api"),// rewrite: (p) => p.replace(/^\/dev-api/, ""),},}const prodProxy = {// 监控视频接口请求地址'/prod-api/api/play': {target: 'https://61407f05p8.oicp.vip',changeOrigin: true,},'/prod-api': {target: 'https://61407f05p8.oicp.vip',changeOrigin: true,},}// https://cn.vitejs.dev/config/#server-proxyconst proxy = VITE_APP_ENV === 'production' ? prodProxy : devProxyreturn {base: VITE_APP_ENV === 'production' ? '/' : '/',plugins: [createVitePlugins(env, command === 'build'),copy({targets: [{src: 'node_modules/@liveqing/liveplayer-v3/dist/component/liveplayer-lib.min.js',dest: 'public/js',},],}),visualizer(),compression(),],resolve: {alias: {// 设置路径'~': path.resolve(__dirname, './'),// 设置别名'@': path.resolve(__dirname, './src'),},// https://cn.vitejs.dev/config/#resolve-extensionsextensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],},// vite 相关配置server: {port: 8080,host: true,open: true,proxy,},css: {postcss: {plugins: [postCssPxToRem({rootValue: 192, // 1rem的大小propList: ['*'], // 需要转换的属性,这里选择全部都进行转换}),],},},build: {rollupOptions: {output: {manualChunks: {echarts: ['echarts'],'element-plus': ['element-plus']}}}},}
})
import { fileURLToPath, URL } from 'node:url'import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig(({mode}) =>{//1传入mode和processcwd之后,loadEnv函数会找.env以及对应模式的.env.XXX文件// 2将设置的环境变量整合到一起再返回出去//在客户端vite提供了另一种方式进行获取环境变量const env =  loadEnv(mode,process.cwd())const { VITE_APP_ENV } = env//  console.log("process",VITE_APP_ENV,process.env);console.log("env",env);//打印结果如下// env {//   VITE_APP_ENV: 'development', //   VITE_BASE_URL: 'devlop',     //   VITE_BASE_XJ: 'xiejun',      //   VITE_APP_TITLE: 'AI管理系统',//   VITE_APP_BASE_API: '/dev-api'// }return {plugins: [vue()],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}},server: {host: true, // host设置为true才可以使用network的形式,以ip访问项目port: 8083, // 端口号open: false, // 自动打开浏览器cors: true, // 跨域设置允许strictPort: true, // 如果端口已占用直接退出proxy: {'/api': {target: 'http://192.168.2.94:8088/',ws: true,changeOrigin: true,// 允许跨域rewrite: (path) => path.replace(/^\/api/, "")}}},}
})
上图是在配置中获取环境变量,那么在客户端如何获取环境变量呢?vite也给出了一种方法:
import.meta.env:它会根据开发者敲的命令的不同(npm run dev/build/test)灵活的获取相对应的环境变量
例如:
const service = axios.create({// axios中请求配置有baseURL选项,表示请求URL公共部分baseURL: import.meta.env.VITE_APP_BASE_API,// 超时timeout: 20000
})

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/179540.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT使用Socket与安卓Socket互发消息

背景:安卓设备通过usb网络共享给Linux,此时安卓设备与linux处于同一网络环境,符合使用socket的条件,linux做客户端,安卓做服务端 1.QT使用Socket (1).在工程文件中加入 QT network (2).导包以及写一些槽函数用做数据传输与状态接收 #ifndef MAINWINDOW_H #define MAINWINDOW…

Playwright UI 自动化测试实战

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

UI自动化测试(弹出框,多窗口)

一、弹出框实战 1、在UI自动化测试中经常会遇到Alert弹出框的场景。Alert类是对话框的处理,主要是对alert警告框。confirm确认框,promp消息对话框。 text():获取alert的文本 dismiss ():点击取消 accept():接受 send-keys():输入 from selenium import …

基于乌鸦算法优化概率神经网络PNN的分类预测 - 附代码

基于乌鸦算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于乌鸦算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于乌鸦优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

浅尝:iOS的CoreGraphics和Flutter的Canvas

iOS的CoreGraphic 基本就是创建一个自定义的UIView&#xff0c;然后重写drawRect方法&#xff0c;在此方法里使用UIGraphicsGetCurrentContext()来绘制目标图形和样式 #import <UIKit/UIKit.h>interface MyGraphicView : UIView endimplementation MyGraphicView// Onl…

一键帮您解决win11最新版画图工具难用问题!

&#x1f984;个人主页:修修修也 ⚙️操作环境:Windows 11 正文 自从win11更新后,新版的画图工具变得非常难用,如: 使用橡皮擦后露出背版马赛克 框住某部分拖动移动时背景露出马赛克剪贴板上图片信息无法直接插入到画图板 目前没有一个好一些的能够在软件内部解决这些问题的方…

浅聊汽车供应链数智化发展趋势

“2023中国汽车供应链大会暨第二届中国新能源智能网联汽车生态大会”在11月10日—12日&#xff0c;武汉经开区举办。围绕供应链安全与布局、新型汽车供应链打造、传统供应链升级、全球化发展等热点话题进行深入交流与探讨&#xff0c;寻找构建世界一流汽车供应链的对策、方法和…

virtualbox基本配置

全屏模式调出热键 右边的 ctrl home 键 安装增强功能 注意&#xff1a;virtualbox 自带那个安装增强功能点击后是没有效果的 1、启动虚拟机 2、设备 3、分配虚拟光驱 4、选择虚拟盘 5、选择对应iso文件&#xff0c;文件下载路径 6、双击对应文件安装&#xff0c;默认配置…

太好玩了,爬虫、部署API、加小程序,一条龙玩转知乎热榜

一直想做一个从爬虫到数据处理&#xff0c;到API部署&#xff0c;再到小程序展示的一条龙项目&#xff0c;最近抽了些时间&#xff0c;实现了一个关于知乎热榜的&#xff0c;今天就来分享一下&#xff01; 由于代码还没有完全整理好&#xff0c;今天只给出一个大致的思路和部分…

零一万物回应「抄袭 LLaMA」;京东原副总裁试用可穿戴人工喉丨 RTE 开发者日报 Vol.85

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

淘宝客APP源码/社交电商自营商城源码/前端基于Uniapp开发

淘宝客APP源码&#xff0c;前端基于Uniapp开发的社交电商自营商城源码。Thinkphp的后台&#xff0c;不是很标准&#xff0c;感兴趣的可以自行研究。 商城功能 1、首页基础装修&#xff1b;2、丰富选品库&#xff1b;3、淘口令解析&#xff1b;4、支持京东&#xff1b;5、支持…

Zookeeper Java SDK 开发入门

文章目录 一、概述二、导入依赖包三、与 Zookeeper 建立连接四、判断 ZooKeeper 节点是否存在四、创建 ZooKeeper 节点数据五、获取 ZooKeeper 节点数据六、修改 ZooKeeper 节点数据七、异步获取 ZooKeeper 节点数据八、完整示例 如果您还没有安装Zookeeper请看ZooKeeper 安装说…