fix: fix builds not lazy loadin

This commit is contained in:
2026-07-20 16:38:16 +09:30
parent c231a00db3
commit c439d8d88f
2 changed files with 26 additions and 11 deletions
+14 -11
View File
@@ -1,7 +1,6 @@
import "./index.css";
import Settings from "./pages/settings.svelte";
import IconFamily from "@/resources/fonts/IconFamily.woff";
import browser from "webextension-polyfill";
import { resolveExtensionAssetUrl } from "@/lib/extensionAssetUrl";
import renderSvelte from "./main";
import { initializeSettingsState } from "@/seqta/utils/listeners/SettingsState";
@@ -24,14 +23,18 @@ function InjectCustomIcons() {
const mountPoint = document.getElementById("app");
if (!mountPoint) {
console.error("Mount point #app not found");
throw new Error("Mount point #app not found");
// In production, Rollup may put this entry in a shared chunk that content
// scripts load via `import("@/interface/main")`. Only the settings page
// has `#app` — never throw on SEQTA tabs.
verboseInfo(
"[BetterSEQTA+] Settings bootstrap skipped (no #app — not the settings page)",
);
} else {
InjectCustomIcons();
void (async () => {
await initializeSettingsState();
initVerboseLogging();
renderSvelte(Settings, mountPoint, { standalone: true });
})();
}
InjectCustomIcons();
(async () => {
await initializeSettingsState();
initVerboseLogging();
renderSvelte(Settings, mountPoint, { standalone: true });
})();
+12
View File
@@ -147,6 +147,18 @@ export default defineConfig(({ command, mode: viteMode }) => {
},
output: {
assetFileNames: "assets/[name]-[hash][extname]",
manualChunks(id) {
const normalized = id.replace(/\\/g, "/");
// Keep the Svelte mount helper out of the settings entry chunk so
// content-script `import("@/interface/main")` does not execute
// settings-page bootstrap (which requires #app).
if (
normalized.endsWith("/interface/main.ts") ||
normalized.endsWith("/interface/main.js")
) {
return "interface-main";
}
},
},
onwarn(warning, warn) {
if (warning.code === "FILE_NAME_CONFLICT") return;