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

聊一聊 webpack 和 vite 的开发服务代理的问题

webpack 和 vite

  • webpack
  • Vite
  • 重新编辑的问题 `changOrigin: true`
  • 如何定义 /api ?

webPack And Vite 都是两个比较好用的打包工具,尤其是 Vite, 几几年流行忘记了,特色就是服务启动极快,实现预加载,感觉 webPack 要比 Vite 要复杂一点,不过两者都是比较好的打包工具

今天想聊一聊关于 webPackVite 的开发代理模块的使用

webpack

以下功能,是在 webpack.config.js 中配置,的 devServer.proxy 代理模块
就是可以代理以 /api 开头的请求到目标服务器上

另外说一下这个 pathRewrite 模块的替换空字符串功能

pathRewrite 配置项用于在代理过程中重写请求路径。具体到你的示例代码中,^/api 表示以 /api 开头的路径,而替换为空字符串的意思是在代理请求时将路径中的 /api 替换为空字符串
|
举个例子,如果有一个前端请求 /api/data,通过配置 pathRewrite: { '^/api': '' },则代理服务器会将该请求代理到目标服务器的 /data 路径上
|
这样做的目的通常是因为前端与后端定义接口时可能统一加了一个 /api 前缀,但实际代理到后端时并不需要这个前缀,因此需要在代理过程中将其去除

// ... 其他配置
devServer: {proxy: {'/api': {target: 'http://target.com',changeOrigin: true,pathRewrite: {'^/api': ''}}}
}

Vite

其实 Vite 的服务代理也是差不多一样的写法

// vite.config,js
export default {// ... 其他配置proxy: {'/api': {target: 'http://target.com',changeOrigin: true,rewrite: path => path.replace(/^\/api/, '') // 这里是将 /api 替换为空字符串}}
}

重新编辑的问题 changOrigin: true

代理服务器在转发请求时将origin请求头更改为目标 URL,这样就可以解决一些因跨域或 host 不一致导致的问题

如何定义 /api ?

在前端项目定义 util 文件夹下的 request.js / request.tsx 使用 BASEURL 定义(一般都是声明为 BASEURL)

它应该是这样的

import axios from "axios";export const service = axios.create({baseURL: "/api",timeout: 10000,
});

调接口时应该这样使用

import {service
} from './request'// 获取本机账号信息
export const getUserData = () => {return service({url: "/getCurrentSummoner",method: "get",});
}

配置完后尝试使用 webPackVite 启动项目测试


相关文章:

聊一聊 webpack 和 vite 的开发服务代理的问题

webpack 和 vite webpackVite重新编辑的问题 changOrigin: true如何定义 /api ? webPack And Vite 都是两个比较好用的打包工具,尤其是 Vite, 几几年流行忘记了,特色就是服务启动极快,实现预加载,感觉 webPack 要比 Vite 要复杂一…...

【鸿蒙4.0】安装DevEcoStudio

1.下载安装包 HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者华为鸿蒙DevEco Studio是面向全场景的一站式集成开发环境,,在鸿蒙官网下载或升级操作系统开发工具DevEco Studio最新版本,SDK配置和下载,2.1支持Mac、Windows操作系统。…...

[概率论]四小时不挂猴博士

贝叶斯公式是什么 贝叶斯公式是概率论中的一个重要定理,用于计算在已知一些先验信息的情况下,更新对事件发生概率的估计。贝叶斯公式的表达式如下: P(A|B) P(B|A) * P(A) / P(B) 其中,P(A|B)表示在事件B发生的条件下事件A发生的概…...

算法通关村第二十关-黄金挑战图的常见算法

大家好我是苏麟 , 今天聊聊图的常见算法 . 图里的算法是很多的,这里我们介绍一些常见的图算法。这些算法一般都比较复杂,我们这里介绍这些算法的基本含义,适合面试的时候装*,如果手写,那就不用啦。 图分析算法&#xf…...

服务器内存不足怎么办?会有什么影响?

服务器内存,也被称为RAM(Random Access Memory),是一种临时存储设备,用于临时存放正在运行的程序和数据。它是服务器上的超高速存储介质,可以快速读取和写入数据,提供给CPU进行实时计算和操作。…...

GPT实战系列-简单聊聊LangChain

GPT实战系列-简单聊聊LangChain LLM大模型相关文章: GPT实战系列-ChatGLM3本地部署CUDA111080Ti显卡24G实战方案 GPT实战系列-Baichuan2本地化部署实战方案 GPT实战系列-大话LLM大模型训练 GPT实战系列-探究GPT等大模型的文本生成 GPT实战系列-Baichuan2等大模…...

【读书笔记】《白帽子讲web安全》浏览器安全

目录 第二篇 客户端脚本安全 第2章 浏览器安全 2.1同源策略 2.2浏览器沙箱 2.3恶意网址拦截 2.4高速发展的浏览器安全 第二篇 客户端脚本安全 第2章 浏览器安全 近年来随着互联网的发展,人们发现浏览器才是互联网最大的入口,绝大多数用户使用互联…...

海外服务器2核2G/4G/8G和4核8G配置16M公网带宽优惠价格表

腾讯云海外服务器租用优惠价格表,2核2G10M带宽、2核4G12M、2核8G14M、4核8G16M配置可选,可以选择Linux操作系统或Linux系统,相比较Linux服务器价格要更优惠一些,腾讯云服务器网txyfwq.com分享腾讯云国外服务器租用配置报价&#x…...

Linux 编译安装 Nginx

目录 一、前言二、四种安装方式介绍三、本文安装方式:源码安装3.1、安装依赖库3.2、开始安装 Nginx3.3、Nginx 相关操作3.4、把 Nginx 注册成系统服务 四、结尾 一、前言 Nginx 是一款轻量级的 Web 服务器、[反向代理]服务器,由于它的内存占用少&#xf…...

Oracle文件自动“减肥”记

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...

【csharp】抽象类与接口有哪些不同?什么时候应该使用抽象类?

抽象类与接口有哪些不同? 抽象类和接口是在面向对象编程中两个不同的概念,它们有一些重要的区别。以下是抽象类和接口的主要不同点: 抽象类(Abstract Class): 成员类型: 抽象类可以包含抽象方…...

最新-mybatis-plus 3.5分页插件配置

mybatis-plus 3.5分页插件配置 前提 1.项目不是springboot, 是以前的常规spring项目 2.mp 从3.2升级到3.5,升级后发现原本的分页竟然不起作用了,每次查询都是查出所有 前后配置对比 jar包对比 jsqlparser我这里单独引了包,因为版本太低…...

案例098:基于微信小程序的电子购物系统的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…...

亚信安慧AntDB数据库:数字化时代的数据库创新引领者

AntDB数据库以其卓越的创新能力,集中体现在融合统一与实时处理两大关键领域。作为一款服务全国超过10亿用户的分布式数据库,其独特之处在于长期积累的经验、多样性的支持能力、快速响应的数据处理速度以及卓越的系统稳定性。AntDB不仅仅是一个数据库系统…...

【MySQL】关于日期转换的方法

力扣题 1、题目地址 1853. 转换日期格式 2、模拟表 表: Days Column NameTypedaydate day 是这个表的主键。 3、要求 给定一个Days表,请你编写SQL查询语句,将Days表中的每一个日期转化为"day_name, month_name day, year"格式的字符串…...

Ubuntu 虚拟机挂接 Windows 目录

Windows 共享目录 首先 Windows 下共享目录 我这里偷懒直接直接 Everyone ,也可以指定用户啥的 Ubuntu 挂接 挂接命令,类似如下: sudo mount -o usernamefananchong,passwordxxxx,uid1000,gid1000,file_mode0644,dir_mode0755,dynperm //…...

机器学习模型可解释性的结果分析

模型的可解释性是机器学习领域的一个重要分支,随着 AI 应用范围的不断扩大,人们越来越不满足于模型的黑盒特性,与此同时,金融、自动驾驶等领域的法律法规也对模型的可解释性提出了更高的要求,在可解释 AI 一文中我们已…...

静态网页设计——环保网(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1BC4y1v7ZY/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…...

【HarmonyOS】装饰器下的状态管理与页面路由跳转实现

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…...

学习笔记——C++中数据的输入 cin

作用:用于从键盘中获取数据 关键字:cin 语法:cin>>变量 类型:C中数据的输入主要包含:整形(int)浮点型(float,double float),字符型&…...

Allegro 17.4 出Gerber和钻孔文件,别再手忙脚乱了!这份保姆级清单请收好

Allegro 17.4 PCB设计文件输出全流程防错指南 在PCB设计领域,文件输出环节往往被工程师们视为"最后的临门一脚",却也是最容易出错的关键步骤。Allegro 17.4作为业界主流设计工具,其文件输出功能虽然完善,但参数设置复杂…...

基于Node.js与OpenAI构建Facebook Messenger聊天机器人实战指南

1. 项目概述与核心思路 最近在折腾一个挺有意思的玩意儿,一个基于Node.js的Facebook Messenger聊天机器人,项目名叫Chino-chan-Bot。说白了,就是让你能用自己的Facebook账号,挂一个自动回复的“小助手”。它不仅能处理基础的群聊…...

长期使用Taotoken聚合服务对开发运维效率的实际提升

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken聚合服务对开发运维效率的实际提升 在构建和迭代基于大语言模型的应用时,开发者常常需要面对一个现实…...

基于MCP协议的Windows桌面AI自动化控制:Copaw Control实战指南

1. 项目概述与核心价值最近在折腾AI智能体开发,特别是想让它们能更“听话”地操作我的电脑,比如帮我整理文件、截图、或者自动处理一些重复性的桌面任务。在这个过程中,我发现了tompaineclaw/copaw-control-mcp这个项目。简单来说&#xff0c…...

【CentOS 7.6】打造现代化C/C++开发环境:Neovim配置、插件生态与智能补全实战

1. 环境准备与工具链搭建 在CentOS 7.6上构建现代化C/C开发环境,首先需要确保基础工具链的完整性。不同于桌面环境,服务器环境往往需要从源码编译安装最新版本的开发工具,这对系统兼容性和依赖管理提出了更高要求。 1.1 GCC编译器升级实战 Ce…...

黑群晖/白群晖通用!Docker部署DDNS-Go搞定腾讯云域名解析(保姆级避坑指南)

群晖与腾讯云域名解析终极方案:Docker化DDNS-Go实战指南 当你在群晖NAS上尝试配置腾讯云DDNS服务时,是否遇到过"认证失败"的困扰?这个问题尤其困扰黑群晖用户,但即便是白群晖用户也难免遭遇兼容性难题。本文将带你探索…...

Zotero PDF Translate:打破语言壁垒,让外文文献阅读更高效 [特殊字符]

Zotero PDF Translate:打破语言壁垒,让外文文献阅读更高效 🚀 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: ht…...

Elsevier Tracker:科研工作者必备的智能投稿状态追踪工具

Elsevier Tracker:科研工作者必备的智能投稿状态追踪工具 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 作为科研工作者,您是否曾因频繁登录Elsevier投稿系统查看审稿进度而感到疲惫&#x…...

国际B2B企业平台表达框架:IBM式重构与ServiceNow式统一执行

如果把国际B2B品牌表达看成一个系统问题,IBM / ServiceNow这组样本可以拆成一套判断框架。它不是讨论文案怎么写,而是讨论输入什么业务条件,输出什么品牌角色、结构和证据链。框架结论:IBM与ServiceNow都服务企业转型,…...

深耕高性价比多模型聚合平台赛道,这些企业值得重点关注

随着AI大模型的普及,单一模型的适配局限、高成本问题逐渐凸显,多模型聚合平台成为企业降本增效的核心选择。行业报告显示,近6个月国内多模型聚合平台的企业付费用户增速超40%,其中高性价比赛道更是成为竞争焦点。一、高性价比的核…...