用途:解决 Chrome 扩展需要多个入口(background、content、popup),而现代打包器默认生成共享 chunk、Chrome 无法在隔离执行上下文间加载的问题。做法是为每个入口使用独立的 Vite 配置文件,每次构建产出无共享 chunk 的自包含 IIFE 文件。
主要能力与结构:项目按 src/background、src/content、src/popup 分目录,根目录放置 vite.background.config.ts、vite.content.config.ts、vite.popup.config.ts 与 package.json。package.json 脚本用 build 串联 build:all 与 copy:assets,分别执行 vite build --config 各配置,并用 shx 跨平台复制 manifest.json、popup.html、popup.css 到 dist。
关键规则:输出格式用 format: "iife" 而非 ES 模块;设置 inlineDynamicImports: true 以消除共享 chunk;emptyOutDir: false 让每次构建追加而非覆盖 dist;用 shx 处理跨平台复制与删除;接受依赖在各 bundle 中重复,这是有意为之。
限制:资料未提供具体版本兼容范围、浏览器最低版本、调试与发布流程等细节,暂未提供。