Webpack 开发环境代理配置指南

作者:构建工坊

时间:2026-10-23

浏览:537

本文介绍在 Webpack 开发环境中,如何通过 devServer 配置代理来解决前端跨域请求问题。详细说明了在 webpack.config.js 中设置 proxy 对象的方法,包括 target、changeOrigin 和 pathRewrite 参数的具体用法,并解释了其底层依赖 http-proxy-middleware 插件的原理。

文章目录

Webpack 开发环境代理配置指南

撰写本文的初衷

在近期的开发工作中,遇到了若干必须通过代理机制才能解决的技术障碍。为了便于日后回顾与查阅,特此整理记录相关经验。

引入代理的必要性

跨域访问限制

在本地开发阶段,前端应用通常运行在 http://localhost 环境下。若后端接口位于其他域名或端口,直接请求会触发浏览器的同源策略限制,导致跨域错误。虽然 JSONP 和 Nginx 反向代理也是常见的解决方案,但使用代理是解决此类开发环境跨域问题的有效手段之一。

代理配置实施步骤

代理配置实施步骤

Webpack 配置方法

以下配置基于典型的开发环境设置。

  1. 定位项目根目录下的 webpack.config.js 配置文件。
  2. 在配置文件的 devServer 对象内部,添加如下代理配置代码:

proxy: {
  '/index':{ // 这个是你要替换的位置
  
  /** 比如你要讲http://localhost:8080/index/xxx 替换成 http://10.20.30.120:8080/sth/xxx
  * 那么就需要将 index 前面的值替换掉, 或者说是替换掉根地址, 
  *你可能发现了index也是需要替换的, 没错, 我会在后续操作中处理.
  */
  
  target: 'http://10.20.30.120:8080'//这个是被替换的目标地址
  
  changeOrigin: true // 默认是false,如果需要代理需要改成true
  
  pathRewrite:{
    '^/index' : '/' //在这里 http://localhost:8080/index/xxx 已经被替换成 http://10.20.30.120:8080/
  }}
}

// 然后在你发起请求的js文件中的地址需要忽略http://10.20.30.120:8080/

//比如 demo.js
axios.post({
  url:'http://10.20.30.120:8080/sth/xxx'// 需要替换成下面的地址
  url:'/sth/xxx'
}
)

底层实现原理

底层实现原理

该代理功能实际上依赖于 http-proxy-middleware 插件实现。该插件负责拦截前端请求并重定向至目标服务器,具体实现细节可查阅相关文档,此处不再赘述。

以上内容涵盖了 Webpack 代理配置的核心要点,希望对读者有所帮助,欢迎继续支持本站获取更多技术分享。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章