兼容低内核版本的浏览器

This commit is contained in:
eafonyang
2026-06-03 15:42:58 +08:00
parent e17c096f0b
commit 56da3e0d1f
29 changed files with 1246 additions and 82 deletions
+38 -4
View File
@@ -152,7 +152,7 @@ function vitePluginManusDebugCollector(): Plugin {
/** 生产构建时剔除 public 中的 __manus__(仅开发调试使用) */
function vitePluginExcludeManusFromDist(): Plugin {
const distDir = path.resolve(import.meta.dirname, "dist");
const distDir = path.resolve(import.meta.dirname, "dist/modern");
return {
name: "exclude-manus-from-dist",
closeBundle() {
@@ -165,18 +165,52 @@ function vitePluginExcludeManusFromDist(): Plugin {
};
}
/** Dev: / → i.modern.html; /i.html → UA router entry */
function vitePluginModernDevEntry(): Plugin {
return {
name: "modern-dev-entry",
apply: "serve",
configureServer(server) {
server.middlewares.use((req, _res, next) => {
const url = (req.url ?? "").split("?")[0];
if (url === "/" || url === "/index.html") {
req.url = "/i.modern.html";
}
next();
});
},
};
}
/** 构建后将统一入口 i.html 复制到 dist/ 根目录 */
function vitePluginCopyRouterEntry(): Plugin {
const src = path.resolve(import.meta.dirname, "client", "i.html");
const dest = path.resolve(import.meta.dirname, "dist", "i.html");
return {
name: "copy-router-entry",
closeBundle() {
if (process.env.NODE_ENV !== "production") return;
const distRoot = path.resolve(import.meta.dirname, "dist");
if (!fs.existsSync(distRoot)) fs.mkdirSync(distRoot, { recursive: true });
fs.copyFileSync(src, dest);
},
};
}
const plugins = [
vitePluginModernDevEntry(),
react(),
tailwindcss(),
jsxLocPlugin(),
vitePluginManusRuntime(),
// vitePluginManusDebugCollector(), // 已禁用:不再注入 debug-collector.js,消除浏览器网络面板中定时出现的 __manus__/logs 请求
vitePluginExcludeManusFromDist(),
vitePluginCopyRouterEntry(),
];
export default defineConfig({
plugins,
base: process.env.NODE_ENV === "production" ? "/x9/v2/" : "/",
base: process.env.NODE_ENV === "production" ? "/x9/v2/modern/" : "/",
resolve: {
alias: {
"@": path.resolve(import.meta.dirname, "client", "src"),
@@ -191,7 +225,7 @@ export default defineConfig({
build: {
target: 'esnext',
cssTarget: 'esnext',
outDir: path.resolve(import.meta.dirname, "dist"),
outDir: path.resolve(import.meta.dirname, "dist/modern"),
emptyOutDir: true,
minify: 'terser',
terserOptions: {
@@ -202,7 +236,7 @@ export default defineConfig({
},
rollupOptions: {
input: {
i: path.resolve(import.meta.dirname, "client", "i.html"),
i: path.resolve(import.meta.dirname, "client", "i.modern.html"),
},
output: {
manualChunks(id) {