
webpack Proxy工作原理
发布日期:2021-05-14 15:54:38
浏览次数:15
分类:精选文章
本文共 1399 字,大约阅读时间需要 4 分钟。
Webpack Proxy
Webpack 提供了一个代理服务,即将客户端发送的请求转发至其他服务器。这种代理机制特别适用于解决开发模式下的跨域问题。
webpack-dev-server
Webpack官方推出的 webpack-dev-server 为开发者提供了一个集成了自动编译、自动刷新等功能的开发服务器,仅适用于开发阶段。
在 webpack 配置文件中,ø通过 devServer 属性配置开发服务器。配置示例如下:
const path = require('path')module.exports = { // ...其余配置 devServer: { contentBase: path.join(__dirname, 'dist'), compress: true, port: 8080, proxy: { '/api': { target: 'https://api.github.com', pathRewrite: { '^/api': '' } } } }}
Proxy 配置详解
devServer 中的 proxy 属性用于定义请求代理规则。每个规则包含以下配置:
target
:指定代理的目标地址。pathRewrite
:用于路径重写,如果需要将某些接口地址转换。secure
:默认不支持将请求转发至 HTTPS 服务器,可自定义设置。changeOrigin
:默认 false
,即请求头中的 host
保持不变;设置为 true
时,请求头的 host
会被设置为目标服务器地址。例如配置可以非常灵活:
proxy: { '/api/': { target: 'http://www.example.org', changeOrigin: true }, '/v1/': { target: 'http://internal.api' }}
工作原理
Webpack Proxy 的核心逻辑基于 http-proxy-middleware
命令行工具,可以轻松在 Express 中实现请求代理。例如:
const express = require('express');const proxy = require('http-proxy-middleware');const app = express();app.use('/api', proxy({ target: 'http://www.example.org', changeOrigin: true}));app.listen(8080);
跨域问题
在开发环境中,Webpack Dev Server 启动一个独立于后端服务的本地服务器。由于浏览器的同源策略,直接从本地发送跨域请求会受限。通过启用 Proxy 服务,浏览器实际发送请求的是开发服务器,而非目标服务器。只需将请求转发给目标服务器,浏览器完全无所谓后续请求的具体路由。
这种方式允许我们在本地开发时无缝使用各类后端服务,同时也避免了各种跨域问题。
!!! 注意:不要直接复制参考文献中的内容,可适当重新表达。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月29日 06时51分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
一张图搞定RPC框架核心原理
2019-03-11
Scala中的包
2019-03-11
他来了他来了,他带着云栖大会的免费门票走来了
2019-03-11
获取linux 主机cpu类型
2019-03-11
Android Studio updating indices 一直刷新和闪烁
2019-03-11
pwntools编写技巧
2019-03-11
How2Heap笔记(三)
2019-03-11
小程序提交新数据后如何返回上一页并刷新数据?
2019-03-11
qt c++实现的ai贪吃蛇吃满屏幕,超详细!(二)ai的具体实现
2019-03-11
linux 查看log日志相关命令
2019-03-11
div 实现光标悬停变成手型
2019-03-11
layer.confirm 无效
2019-03-11
Java 回调机制
2019-03-11
pycharm使用(新建工程、字体修改、调试)
2019-03-11
什么是Numpy、Numpy教程
2019-03-11
Python学习笔记——元组
2019-03-11
异常声音检测
2019-03-11
无法打开文件“opencv_world330d.lib”的解决办法
2019-03-11