import type { PluginOption, ViteDevServer } from 'vite'; /** * 自定义插件,用于开发环境多页跳转时,路由匹配正确的静态首页 * @param conmmonPath 路由公共路径 '/marketing/shangou/activity/' * @param entries 开发环境运行的多页列表 ['roo','index','mobile'] * @returns */ export default function vitePluginHtmlFallback(conmmonPath: string, entries: string[]): PluginOption { return { name: "vite-plugin-html-fallback", apply: "serve", configureServer(viteDevServer: ViteDevServer) { viteDevServer.middlewares.use(async (req: any, res: any, next: any) => { entries.forEach((entry) => { if (req.originalUrl.startsWith(conmmonPath + entry)) { req.url = `/${entry}.html`; } }) next(); }); } } }