- 包管理和运行时换成 Bun:bun.lock 取代 package-lock.json,脚本用 bun --bun 运行, CI 改用 oven-sh/setup-bun(1.4.4,与后端镜像一致) - 构建工具从 Rsbuild 换成 Vite 8,沿用 PUBLIC_ 环境变量前缀和 3000 端口; 浏览器目标保持 Chrome 87 起(机房是 Chrome 105),用 plugin-legacy 按需注入 core-js(toSorted 等),不生成旧浏览器的兼容包 - fmt 改用 Bun 自带的格式化,配置从 .prettierrc.toml 移到 bunfig.toml; prettier 包仍保留,编辑器里的「整理」按钮在浏览器里用它 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { defineConfig, loadEnv } from "vite"
|
||
import vue from "@vitejs/plugin-vue"
|
||
import legacy from "@vitejs/plugin-legacy"
|
||
import Components from "unplugin-vue-components/vite"
|
||
import { NaiveUiResolver } from "unplugin-vue-components/resolvers"
|
||
|
||
// 与原来 Rsbuild 默认的浏览器范围一致;机房电脑是 Chrome 105
|
||
const targets = ["chrome >= 87", "edge >= 88", "firefox >= 78", "safari >= 14"]
|
||
|
||
export default defineConfig(({ mode }) => {
|
||
const env = loadEnv(mode, process.cwd(), "PUBLIC_")
|
||
return {
|
||
plugins: [
|
||
vue(),
|
||
Components({ resolvers: [NaiveUiResolver()] }),
|
||
// 只按需注入 core-js(toSorted 等新 API),不生成给不支持 ES 模块的旧浏览器用的包
|
||
legacy({ modernTargets: targets, modernPolyfills: true, renderLegacyChunks: false }),
|
||
],
|
||
// 沿用 Rsbuild 时期的 PUBLIC_ 前缀
|
||
envPrefix: "PUBLIC_",
|
||
server: {
|
||
port: 3000,
|
||
proxy: {
|
||
"/media": {
|
||
target: env.PUBLIC_WEB_URL,
|
||
changeOrigin: true,
|
||
},
|
||
"/ws": {
|
||
target: env.PUBLIC_WEB_URL,
|
||
ws: true,
|
||
changeOrigin: true,
|
||
},
|
||
},
|
||
},
|
||
}
|
||
})
|