From 479b2878a9f51aae170e6e305c1c74b5285a0755 Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Tue, 11 Feb 2025 18:19:07 +1100 Subject: [PATCH] fix: builds failing in some cases + extension failing to load due to vite legacy api --- lib/patchPackage.ts | 35 +++++++++++++++++++++++++---------- vite.config.ts | 3 +++ 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/lib/patchPackage.ts b/lib/patchPackage.ts index ab59850b..df0ede8a 100644 --- a/lib/patchPackage.ts +++ b/lib/patchPackage.ts @@ -25,17 +25,32 @@ export function updateManifestPlugin(): PluginOption { console.log('** updated **'); } - fs.watchFile(manifestPath, () => { - console.log('** watchFile ** '); - const manifestContents = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); - if (manifestContents.web_accessible_resources.some((resource: any) => resource.use_dynamic_url)) { - const updated = forceDisableUseDynamicUrl(); - if (updated) { - server.ws.send({ type: 'full-reload' }); - console.log('** updated **'); - } + // Implement retry mechanism for file watching + const watchWithRetry = () => { + if (!fs.existsSync(manifestPath)) { + console.log('Manifest not found, retrying in 1 second...'); + setTimeout(watchWithRetry, 1000); + return; } - }); + + fs.watchFile(manifestPath, () => { + console.log('** watchFile **'); + try { + const manifestContents = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); + if (manifestContents.web_accessible_resources?.some((resource: any) => resource.use_dynamic_url)) { + const updated = forceDisableUseDynamicUrl(); + if (updated) { + server.ws.send({ type: 'full-reload' }); + console.log('** updated **'); + } + } + } catch (error) { + console.log('Error reading manifest, will retry on next change:', error.message); + } + }); + }; + + watchWithRetry(); }); }, diff --git a/vite.config.ts b/vite.config.ts index 23bb54a4..85657276 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -64,6 +64,9 @@ export default defineConfig({ optimizeDeps: { include: ['@babel/runtime/helpers/extends', '@babel/runtime/helpers/interopRequireDefault'], }, + legacy: { + skipWebSocketTokenCheck: true, + }, build: { outDir: resolve(__dirname, 'dist', mode), emptyOutDir: false,