// Build de l'extension : un seul bundle CJS `dist/extension.js`. // esbuild résout `@arboretum/shared` via le symlink workspace et l'inline dans le bundle // (VSIX 100 % autonome, sans node_modules embarqué) ; seul `vscode` reste externe (fourni par l'hôte). import esbuild from 'esbuild'; const watch = process.argv.includes('--watch'); /** @type {import('esbuild').BuildOptions} */ const options = { entryPoints: ['src/extension.ts'], bundle: true, platform: 'node', format: 'cjs', target: 'node18', // VSCode 1.85 embarque Electron/Node 18 outfile: 'dist/extension.js', external: ['vscode'], // module fourni par l'hôte VSCode, jamais bundlé sourcemap: true, minify: !watch, logLevel: 'info', }; if (watch) { const ctx = await esbuild.context(options); await ctx.watch(); console.log('[esbuild] watching…'); } else { await esbuild.build(options); }