Bugfix: Refactor SSR bundler. Fix stale cache SSR modules.
This commit is contained in:
-2
@@ -5,8 +5,6 @@ import cleanupArtifacts from "./cleanup-artifacts";
|
||||
export default async function rebuildBundler(params) {
|
||||
try {
|
||||
global.ROUTER.reload();
|
||||
// await global.BUNDLER_CTX?.dispose();
|
||||
// global.BUNDLER_CTX = undefined;
|
||||
const new_artifacts = await allPagesBunBundler({
|
||||
page_file_paths: params?.target_file_paths,
|
||||
});
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
import _ from "lodash";
|
||||
import grabPageComponent from "./web-pages/grab-page-component";
|
||||
import initPages from "../bundler/init-pages";
|
||||
export default async function serverPostBuildFn() {
|
||||
// if (!global.IS_FIRST_BUNDLE_READY) {
|
||||
// global.IS_FIRST_BUNDLE_READY = true;
|
||||
// }
|
||||
if (!global.HMR_CONTROLLERS?.[0] || !global.BUNDLER_CTX_MAP) {
|
||||
return;
|
||||
}
|
||||
@@ -45,9 +41,5 @@ export default async function serverPostBuildFn() {
|
||||
catch {
|
||||
global.HMR_CONTROLLERS.splice(i, 1);
|
||||
}
|
||||
global.REACT_DOM_MODULE_CACHE.delete(target_artifact.local_path);
|
||||
initPages({
|
||||
target_page_file: target_artifact.local_path,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -4,7 +4,6 @@ import grabDirNames from "../../utils/grab-dir-names";
|
||||
import { log } from "../../utils/log";
|
||||
import allPagesESBuildContextBundler from "../bundler/all-pages-esbuild-context-bundler";
|
||||
import serverPostBuildFn from "./server-post-build-fn";
|
||||
import initPages from "../bundler/init-pages";
|
||||
const { ROOT_DIR } = grabDirNames();
|
||||
export default async function watcherEsbuildCTX() {
|
||||
const pages_src_watcher = watch(ROOT_DIR, {
|
||||
@@ -101,6 +100,9 @@ async function fullRebuild(params) {
|
||||
await global.BUNDLER_CTX?.dispose();
|
||||
global.BUNDLER_CTX = undefined;
|
||||
global.BUNDLER_CTX_MAP = {};
|
||||
await global.SSR_BUNDLER_CTX?.dispose();
|
||||
global.SSR_BUNDLER_CTX = undefined;
|
||||
global.SSR_BUNDLER_CTX_MAP = {};
|
||||
allPagesESBuildContextBundler({
|
||||
post_build_fn: serverPostBuildFn,
|
||||
});
|
||||
@@ -112,12 +114,10 @@ async function fullRebuild(params) {
|
||||
global.PAGES_SRC_WATCHER.close();
|
||||
watcherEsbuildCTX();
|
||||
}
|
||||
initPages();
|
||||
}
|
||||
function reloadWatcher() {
|
||||
if (global.PAGES_SRC_WATCHER) {
|
||||
global.PAGES_SRC_WATCHER.close();
|
||||
watcherEsbuildCTX();
|
||||
}
|
||||
initPages();
|
||||
}
|
||||
|
||||
@@ -2,8 +2,16 @@ import grabPageReactComponentString from "./grab-page-react-component-string";
|
||||
import grabTsxStringModule from "./grab-tsx-string-module";
|
||||
import { log } from "../../../utils/log";
|
||||
import grabRootFilePath from "./grab-root-file-path";
|
||||
import path from "path";
|
||||
import grabDirNames from "../../../utils/grab-dir-names";
|
||||
const { ROOT_DIR } = grabDirNames();
|
||||
export default async function grabPageBundledReactComponent({ file_path, return_tsx_only, }) {
|
||||
try {
|
||||
if (global.SSR_BUNDLER_CTX_MAP?.[file_path]) {
|
||||
const mod = await import(path.join(ROOT_DIR, global.SSR_BUNDLER_CTX_MAP[file_path].path));
|
||||
const Main = mod.default;
|
||||
return { component: Main };
|
||||
}
|
||||
const { root_file_path } = grabRootFilePath();
|
||||
let tsx = grabPageReactComponentString({
|
||||
file_path,
|
||||
|
||||
@@ -1,19 +1,12 @@
|
||||
import EJSON from "../../../utils/ejson";
|
||||
import { log } from "../../../utils/log";
|
||||
export default function grabPageReactComponentString({ file_path, root_file_path,
|
||||
// server_res,
|
||||
}) {
|
||||
export default function grabPageReactComponentString({ file_path, root_file_path, }) {
|
||||
try {
|
||||
let tsx = ``;
|
||||
// const server_res_json = JSON.stringify(
|
||||
// EJSON.stringify(server_res || {}) ?? "{}",
|
||||
// );
|
||||
if (root_file_path) {
|
||||
tsx += `import Root from "${root_file_path}"\n`;
|
||||
}
|
||||
tsx += `import Page from "${file_path}"\n`;
|
||||
tsx += `export default function Main({...props}) {\n\n`;
|
||||
// tsx += `const props = JSON.parse(${server_res_json})\n\n`;
|
||||
tsx += ` return (\n`;
|
||||
if (root_file_path) {
|
||||
tsx += ` <Root {...props}><Page {...props} /></Root>\n`;
|
||||
|
||||
Reference in New Issue
Block a user