This commit is contained in:
Benjamin Toby 2026-04-14 20:24:08 +01:00
parent d6f0a7962e
commit b597e1420e
9 changed files with 23 additions and 9 deletions

View File

@ -6,7 +6,7 @@ import _ from "lodash";
import pagesSSRBundler from "../pages-ssr-bundler";
let build_start = 0;
let build_starts = 0;
const MAX_BUILD_STARTS = 2;
const MAX_BUILD_STARTS = 5;
export default function esbuildCTXArtifactTracker({ entryToPage, post_build_fn, }) {
const artifactTracker = {
name: "artifact-tracker",

View File

@ -1,7 +1,5 @@
import {} from "esbuild";
import grabArtifactsFromBundledResults from "../grab-artifacts-from-bundled-result";
import buildOnstartErrorHandler from "../build-on-start-error-handler";
import { log } from "../../../utils/log";
let build_start = 0;
let build_starts = 0;
const MAX_BUILD_STARTS = 2;
@ -13,7 +11,9 @@ export default function ssrCTXArtifactTracker({ entryToPage, post_build_fn, }) {
build_starts++;
build_start = performance.now();
if (build_starts == MAX_BUILD_STARTS) {
await buildOnstartErrorHandler();
global.SSR_BUNDLER_CTX_DISPOSED = true;
await global.SSR_BUNDLER_CTX?.dispose();
global.SSR_BUNDLER_CTX = undefined;
}
});
build.onEnd((result) => {
@ -41,6 +41,7 @@ export default function ssrCTXArtifactTracker({ entryToPage, post_build_fn, }) {
// );
// log.success(`SSR [Built] in ${elapsed}ms`);
}
global.SSR_BUNDLER_CTX_DISPOSED = false;
});
},
};

View File

@ -41,6 +41,7 @@ declare global {
css: string;
}>;
var BUNDLER_CTX_DISPOSED: boolean | undefined;
var SSR_BUNDLER_CTX_DISPOSED: boolean | undefined;
var REBUILD_RETRIES: number;
var IS_404_PAGE: boolean;
var CONSTANTS: ReturnType<typeof grabConstants>;

View File

@ -4,6 +4,7 @@ import grabDirNames from "../../utils/grab-dir-names";
import fullRebuild from "./full-rebuild";
import { AppData } from "../../data/app-data";
import checkExcludedPatterns from "../../utils/check-excluded-patterns";
import pagesSSRBundler from "../bundler/pages-ssr-bundler";
const { ROOT_DIR } = grabDirNames();
export default async function watcherEsbuildCTX() {
const pages_src_watcher = watch(ROOT_DIR, {
@ -19,6 +20,9 @@ export default async function watcherEsbuildCTX() {
await fullRebuild({ msg: `Restarting Bundler ...` });
global.BUNDLER_CTX_DISPOSED = false;
}
if (global.SSR_BUNDLER_CTX_DISPOSED) {
pagesSSRBundler();
}
if (filename.endsWith(AppData["BunextTmpFileExt"])) {
return;
}

View File

@ -1,6 +1,6 @@
{
"name": "@moduletrace/bunext",
"version": "1.0.78",
"version": "1.0.79",
"main": "dist/index.js",
"module": "index.ts",
"dependencies": {

View File

@ -8,7 +8,7 @@ import pagesSSRBundler from "../pages-ssr-bundler";
let build_start = 0;
let build_starts = 0;
const MAX_BUILD_STARTS = 2;
const MAX_BUILD_STARTS = 5;
type Params = {
entryToPage: Map<

View File

@ -1,8 +1,6 @@
import { type Plugin } from "esbuild";
import type { PageFiles } from "../../../types";
import grabArtifactsFromBundledResults from "../grab-artifacts-from-bundled-result";
import buildOnstartErrorHandler from "../build-on-start-error-handler";
import { log } from "../../../utils/log";
let build_start = 0;
let build_starts = 0;
@ -29,7 +27,9 @@ export default function ssrCTXArtifactTracker({
build_starts++;
build_start = performance.now();
if (build_starts == MAX_BUILD_STARTS) {
await buildOnstartErrorHandler();
global.SSR_BUNDLER_CTX_DISPOSED = true;
await global.SSR_BUNDLER_CTX?.dispose();
global.SSR_BUNDLER_CTX = undefined;
}
});
@ -64,6 +64,8 @@ export default function ssrCTXArtifactTracker({
// );
// log.success(`SSR [Built] in ${elapsed}ms`);
}
global.SSR_BUNDLER_CTX_DISPOSED = false;
});
},
};

View File

@ -48,6 +48,7 @@ declare global {
var REACT_DOM_SERVER: any;
var REACT_DOM_MODULE_CACHE: Map<string, { main: any; css: string }>;
var BUNDLER_CTX_DISPOSED: boolean | undefined;
var SSR_BUNDLER_CTX_DISPOSED: boolean | undefined;
var REBUILD_RETRIES: number;
var IS_404_PAGE: boolean;
var CONSTANTS: ReturnType<typeof grabConstants>;

View File

@ -4,6 +4,7 @@ import grabDirNames from "../../utils/grab-dir-names";
import fullRebuild from "./full-rebuild";
import { AppData } from "../../data/app-data";
import checkExcludedPatterns from "../../utils/check-excluded-patterns";
import pagesSSRBundler from "../bundler/pages-ssr-bundler";
const { ROOT_DIR } = grabDirNames();
@ -26,6 +27,10 @@ export default async function watcherEsbuildCTX() {
global.BUNDLER_CTX_DISPOSED = false;
}
if (global.SSR_BUNDLER_CTX_DISPOSED) {
pagesSSRBundler();
}
if (filename.endsWith(AppData["BunextTmpFileExt"])) {
return;
}