mirror of
https://github.com/arcodange-org/mediabunny.git
synced 2026-10-02 21:33:52 +02:00
Add build step
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import * as esbuild from 'esbuild';
|
||||
import process from 'node:process';
|
||||
|
||||
const baseConfig = {
|
||||
entryPoints: ['src/index.ts'],
|
||||
bundle: true,
|
||||
logLevel: 'info'
|
||||
};
|
||||
|
||||
const umdConfig = {
|
||||
...baseConfig,
|
||||
format: 'iife',
|
||||
|
||||
// The following are hacks to basically make this an UMD module. No native support for that in esbuild as of today
|
||||
globalName: 'Metamuxer',
|
||||
|
||||
footer: {
|
||||
js:
|
||||
`if (typeof module === "object" && typeof module.exports === "object") Object.assign(module.exports, Metamuxer)`
|
||||
}
|
||||
};
|
||||
|
||||
const esmConfig = {
|
||||
...baseConfig,
|
||||
format: 'esm'
|
||||
};
|
||||
|
||||
let ctxUmd = await esbuild.context({
|
||||
...umdConfig,
|
||||
outfile: 'dist/metamuxer.js'
|
||||
});
|
||||
let ctxEsm = await esbuild.context({
|
||||
...esmConfig,
|
||||
outfile: 'dist/metamuxer.mjs'
|
||||
});
|
||||
let ctxUmdMinified = await esbuild.context({
|
||||
...umdConfig,
|
||||
outfile: 'dist/metamuxer.min.js',
|
||||
minify: true
|
||||
});
|
||||
let ctxEsmMinified = await esbuild.context({
|
||||
...esmConfig,
|
||||
outfile: 'dist/metamuxer.min.mjs',
|
||||
minify: true
|
||||
});
|
||||
|
||||
if (process.argv[2] === '--watch') {
|
||||
await Promise.all([
|
||||
ctxUmd.watch(),
|
||||
ctxEsm.watch(),
|
||||
ctxUmdMinified.watch(),
|
||||
ctxEsmMinified.watch(),
|
||||
]);
|
||||
} else {
|
||||
ctxUmd.rebuild();
|
||||
ctxEsm.rebuild();
|
||||
ctxUmdMinified.rebuild();
|
||||
ctxEsmMinified.rebuild();
|
||||
|
||||
await Promise.all([
|
||||
ctxUmd.dispose(),
|
||||
ctxEsm.dispose(),
|
||||
ctxUmdMinified.dispose(),
|
||||
ctxEsmMinified.dispose(),
|
||||
]);
|
||||
}
|
||||
Reference in New Issue
Block a user