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
+9 -6
View File
@@ -1,7 +1,6 @@
import "./index.css"; import "./index.css";
import Settings from "./pages/settings.svelte"; import Settings from "./pages/settings.svelte";
import IconFamily from "@/resources/fonts/IconFamily.woff"; import IconFamily from "@/resources/fonts/IconFamily.woff";
import browser from "webextension-polyfill";
import { resolveExtensionAssetUrl } from "@/lib/extensionAssetUrl"; import { resolveExtensionAssetUrl } from "@/lib/extensionAssetUrl";
import renderSvelte from "./main"; import renderSvelte from "./main";
import { initializeSettingsState } from "@/seqta/utils/listeners/SettingsState"; import { initializeSettingsState } from "@/seqta/utils/listeners/SettingsState";
@@ -24,14 +23,18 @@ function InjectCustomIcons() {
const mountPoint = document.getElementById("app"); const mountPoint = document.getElementById("app");
if (!mountPoint) { if (!mountPoint) {
console.error("Mount point #app not found"); // In production, Rollup may put this entry in a shared chunk that content
throw new Error("Mount point #app not found"); // 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(); InjectCustomIcons();
(async () => { void (async () => {
await initializeSettingsState(); await initializeSettingsState();
initVerboseLogging(); initVerboseLogging();
renderSvelte(Settings, mountPoint, { standalone: true }); renderSvelte(Settings, mountPoint, { standalone: true });
})(); })();
}
+12
View File
@@ -147,6 +147,18 @@ export default defineConfig(({ command, mode: viteMode }) => {
}, },
output: { output: {
assetFileNames: "assets/[name]-[hash][extname]", 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) { onwarn(warning, warn) {
if (warning.code === "FILE_NAME_CONFLICT") return; if (warning.code === "FILE_NAME_CONFLICT") return;