Files
nuhodds_fi4/bin/build.js
T
2025-08-18 07:22:05 +02:00

72 lines
2.1 KiB
JavaScript

import * as esbuild from "esbuild";
const isDev = process.argv.includes("--dev");
async function compile(options) {
const context = await esbuild.context(options);
if (isDev) {
await context.watch();
} else {
await context.rebuild();
await context.dispose();
}
}
const defaultOptions = {
define: {
"process.env.NODE_ENV": isDev ? `'development'` : `'production'`,
},
bundle: true,
mainFields: ["module", "main"],
platform: "neutral",
sourcemap: isDev ? "inline" : false,
sourcesContent: isDev,
treeShaking: true,
target: ["es2020"],
minify: !isDev,
plugins: [
{
name: "watchPlugin",
setup(build) {
build.onStart(() => {
console.log(
`Build started at ${new Date(
Date.now()
).toLocaleTimeString()}: ${
build.initialOptions.outfile
}`
);
});
build.onEnd((result) => {
if (result.errors.length > 0) {
console.log(
`Build failed at ${new Date(
Date.now()
).toLocaleTimeString()}: ${
build.initialOptions.outfile
}`,
result.errors
);
} else {
console.log(
`Build finished at ${new Date(
Date.now()
).toLocaleTimeString()}: ${
build.initialOptions.outfile
}`
);
}
});
},
},
],
};
compile({
...defaultOptions,
entryPoints: ["./node_modules/tabulator-tables/dist/js/tabulator.min.js"],
outfile: "./resources/js/dist/components/tabulator.js",
});