You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vite 如何配置实现类似 webpack-dev-server 的开发中间件功能

Vite 中对应 Webpack devServer.before 自定义中间件的能力由 server.configureServer 配置项提供,底层基于 connect 中间件体系,和 express 写法高度兼容,原有 Webpack 逻辑几乎可以直接迁移。

基础实现示例

以下是和你给出的 Webpack 配置功能完全对齐的 Vite 写法:

import { defineConfig } from 'vite'

export default defineConfig({
  server: {
    configureServer(server) {
      server.middlewares.use('/', (req, res, next) => {
        // 匹配GET请求根路径的逻辑
        if (req.method === 'GET' && req.url === '/') {
          // 自定义逻辑写在这里
          res.writeHead(302, { Location: 'someUrl' })
          res.end()
          return
        }
        next()
      })
    }
  }
})

调整中间件执行时机

默认配置下自定义中间件会在 Vite 内置中间件之后执行,如果你需要和 Webpack before 完全一致的执行时机(自定义中间件早于内置中间件执行),可以让 configureServer 返回一个函数,函数内挂载的中间件会优先运行:

import { defineConfig } from 'vite'

export default defineConfig({
  server: {
    configureServer(server) {
      // 返回的函数会在Vite内置中间件安装前执行
      return () => {
        server.middlewares.use('/test', (req, res, next) => {
          if (req.method === 'GET') {
            // 示例:mock接口返回数据
            res.setHeader('Content-Type', 'application/json')
            res.end(JSON.stringify({ code: 0, data: 'mock响应' }))
            return
          }
          next()
        })
      }
    }
  }
})

支持的常见场景

  • 开发阶段接口 mock 模拟返回
  • 路径跳转、重定向、路径重写
  • 自定义请求日志、临时权限校验等测试逻辑
  • 静态资源自定义响应规则

内容的提问来源于stack exchange,提问作者GoldenRam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:06:03