Error handling bugfix: pass #1
This commit is contained in:
+9
-10
@@ -1,18 +1,17 @@
|
||||
export default async function buildOnstartErrorHandler(params) {
|
||||
// const error_msg = `Build Failed. Please check all your components and imports.`;
|
||||
// log.error(error_msg);
|
||||
if (global.BUNEXT_BUNDLER_CTX_DISPOSED) {
|
||||
return;
|
||||
}
|
||||
// console.log(`Killing Bundler ...`);
|
||||
// console.log(`global.BUNEXT_BUNDLER_CTX_DISPOSED`, global.BUNEXT_BUNDLER_CTX_DISPOSED);
|
||||
global.BUNEXT_BUNDLER_CTX_DISPOSED = true;
|
||||
global.BUNEXT_RECOMPILING = false;
|
||||
global.BUNEXT_IS_SERVER_COMPONENT = false;
|
||||
await Promise.all([
|
||||
global.BUNEXT_SSR_BUNDLER_CTX?.dispose(),
|
||||
global.BUNEXT_BUNDLER_CTX?.dispose(),
|
||||
]);
|
||||
global.BUNEXT_SSR_BUNDLER_CTX = undefined;
|
||||
global.BUNEXT_BUNDLER_CTX = undefined;
|
||||
// NOTE: must NOT dispose the currently-building context here. This
|
||||
// handler runs from the artifact-tracker plugin's onStart, i.e. while the
|
||||
// context's own build is in flight. esbuild's `dispose()` waits for the
|
||||
// in-flight build to finish, so disposing self = deadlock, which left the
|
||||
// dev server permanently stuck after a failed rebuild.
|
||||
//
|
||||
// Marking the context as disposed is enough: the next rebuild attempt
|
||||
// (watcher / fullRebuild) sees BUNEXT_BUNDLER_CTX_DISPOSED and recreates a
|
||||
// fresh context, whose cleanup disposes the old (now idle) one.
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user