27 lines
680 B
JavaScript
27 lines
680 B
JavaScript
import * as esbuild from 'esbuild';
|
|
import { cpSync, mkdirSync, existsSync } from 'node:fs';
|
|
|
|
const outdir = 'dist';
|
|
mkdirSync(outdir, { recursive: true });
|
|
|
|
await esbuild.build({
|
|
entryPoints: {
|
|
background: 'src/background/index.ts',
|
|
popup: 'src/popup/popup.ts',
|
|
},
|
|
bundle: true,
|
|
format: 'esm',
|
|
target: 'chrome120',
|
|
outdir,
|
|
logLevel: 'info',
|
|
});
|
|
|
|
cpSync('manifest.json', `${outdir}/manifest.json`);
|
|
cpSync('src/popup/popup.html', `${outdir}/popup.html`);
|
|
cpSync('src/popup/popup.css', `${outdir}/popup.css`);
|
|
if (existsSync('icons')) {
|
|
cpSync('icons', `${outdir}/icons`, { recursive: true });
|
|
}
|
|
|
|
console.log(`Built -> ${outdir}/`);
|