From f3edf2075edfbe9b53fff7e65086002b29afb5fd Mon Sep 17 00:00:00 2001 From: seem Date: Thu, 7 May 2026 17:19:28 +0200 Subject: [PATCH 1/2] update `yarn dev-vscode` to build tests with `dev` mode (i.e. watch and recompile) --- apps/vscode/build.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/vscode/build.ts b/apps/vscode/build.ts index 8595c118..82e2e1f8 100644 --- a/apps/vscode/build.ts +++ b/apps/vscode/build.ts @@ -26,6 +26,7 @@ const testBuildOptions = { outdir: 'test-out', external: ['vscode', 'mocha', 'glob'], sourcemap: true, + dev, }; const defaultBuildOptions = { @@ -36,4 +37,11 @@ const defaultBuildOptions = { dev }; -runBuild(test ? testBuildOptions : defaultBuildOptions); +if (test) { + runBuild(testBuildOptions); +} else if (dev) { + runBuild(defaultBuildOptions); + runBuild(testBuildOptions); +} else { + runBuild(defaultBuildOptions); +} From 91cf93a5abfd1325cc63619e3b5cdbf08d08d71d Mon Sep 17 00:00:00 2001 From: elliot Date: Fri, 15 May 2026 13:16:51 -0400 Subject: [PATCH 2/2] Clear outdir before build --- packages/build/src/index.ts | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/build/src/index.ts b/packages/build/src/index.ts index 73e8fd8a..3a6f6ba6 100644 --- a/packages/build/src/index.ts +++ b/packages/build/src/index.ts @@ -13,8 +13,9 @@ * */ -import { build, Format, Platform } from 'esbuild'; +import { build, Format, Platform, PluginBuild } from 'esbuild'; import { AssetPair, copy } from 'esbuild-plugin-copy'; +import { rm } from 'node:fs/promises'; export interface BuildOptions { entryPoints: string[]; @@ -58,17 +59,27 @@ export async function runBuild(options: BuildOptions) { watch: dev ? { onRebuild(error) { if (error) - console.error('[watch] build failed:', error) + console.error('[watch] build failed:', error); else - console.log('[watch] build finished') + console.log('[watch] build finished'); }, } : false, - plugins: assets ? [ - copy({ + plugins: [ + ...(outdir ? [{ + name: 'clear-outdir', + setup(build: PluginBuild) { + build.onStart(async () => { + console.log(`Clearing the ${outdir} directory`); + await rm(outdir, { recursive: true, force: true }); + console.log(`Cleared the ${outdir} directory`); + }); + }, + }] : []), + ...(assets ? [copy({ resolveFrom: 'cwd', assets, - }), - ] : [], + })] : []), + ], }); if (dev) {