yt-playlist-features/esbuild.config.mjs

50 lines
1.2 KiB
JavaScript

import * as esbuild from "esbuild";
import { cpSync, mkdirSync } from "fs";
const common = {
bundle: true,
sourcemap: true,
target: "es2020",
};
async function build(browser) {
const outdir = `dist/${browser}`;
mkdirSync(outdir, { recursive: true });
await Promise.all([
esbuild.build({
...common,
entryPoints: ["src/content/index.ts"],
outfile: `${outdir}/content/index.js`,
format: "iife",
}),
esbuild.build({
...common,
entryPoints: ["src/background/service-worker.ts"],
outfile: `${outdir}/background/service-worker.js`,
format: "iife",
}),
esbuild.build({
...common,
entryPoints: ["src/injected/page-script.ts"],
outfile: `${outdir}/injected/page-script.js`,
format: "iife",
}),
esbuild.build({
...common,
entryPoints: ["src/options/options.ts"],
outfile: `${outdir}/options/options.js`,
format: "iife",
}),
]);
cpSync("src/options/options.html", `${outdir}/options/options.html`);
cpSync(`manifest.${browser}.json`, `${outdir}/manifest.json`);
}
await build("chrome");
await build("firefox");
console.log("Build complete.");