import { fileURLToPath, URL } from "node:url" import { defineConfig, loadEnv } from "vite" import vue from "@vitejs/plugin-vue" import legacy from "@vitejs/plugin-legacy" import AutoImport from "unplugin-auto-import/vite" import Components from "unplugin-vue-components/vite" import { NaiveUiResolver } from "unplugin-vue-components/resolvers" // 机房电脑的 Chrome 是 105 一档,比 plugin-legacy 的现代基线(chrome>=105)正好压线, // 但比 vite 8 的默认构建 target(chrome111)低。所以这个插件必须留着:它同时管两件事 // —— 把 build.target 压到 chrome105/es2020,再给现代产物补 core-js 的 API polyfill。 // // 下面这份清单是 `modernPolyfills: true` 自动探测出来的 50 项,抄下来写死:自动探测要 // 对每个产物跑一遍 Babel 扫描,构建从 3 秒涨到 12 秒。**升级前端依赖后重新审计一次**: // DEBUG=vite:legacy bun run build # 会打印 modern polyfills 的全集 // 少一项就是老机器上一个静默的 TypeError(这批缺的大多是 Chrome 110+ 的 // Array.prototype.toSorted / Set 运算 / 迭代器辅助)。 const polyfills = [ "es.array-buffer.detached", "es.array-buffer.transfer", "es.array-buffer.transfer-to-fixed-length", "es.array.includes", "es.array.push", "es.array.to-reversed", "es.array.to-sorted", "es.array.to-spliced", "es.array.with", "es.iterator.constructor", "es.iterator.drop", "es.iterator.every", "es.iterator.filter", "es.iterator.find", "es.iterator.flat-map", "es.iterator.for-each", "es.iterator.map", "es.iterator.reduce", "es.iterator.some", "es.iterator.to-array", "es.json.parse", "es.json.stringify", "es.map.get-or-insert", "es.map.get-or-insert-computed", "es.regexp.escape", "es.regexp.flags", "es.set.difference.v2", "es.set.intersection.v2", "es.set.is-disjoint-from.v2", "es.set.is-subset-of.v2", "es.set.is-superset-of.v2", "es.set.symmetric-difference.v2", "es.set.union.v2", "es.typed-array.to-reversed", "es.typed-array.to-sorted", "es.typed-array.with", "es.uint8-array.set-from-base64", "es.uint8-array.set-from-hex", "es.uint8-array.to-base64", "es.uint8-array.to-hex", "es.weak-map.get-or-insert", "es.weak-map.get-or-insert-computed", "esnext.array.group", "web.dom-exception.stack", "web.immediate", "web.structured-clone", "web.url-search-params.delete", "web.url-search-params.has", "web.url-search-params.size", "web.url.can-parse", ] // MaxKB 脚本**不要**在这里注入 index.html。 // // 原来有个 inject-maxkb 插件把