Files
Rivertalk/river_connect/assets/build.js
T
2026-02-14 16:23:55 -06:00

54 lines
1.0 KiB
JavaScript

const esbuild = require("esbuild");
const { solidPlugin } = require("esbuild-plugin-solid");
const path = require("path");
const args = process.argv.slice(2);
const watch = args.includes("--watch");
const deploy = args.includes("--deploy");
const plugins = [
solidPlugin(),
];
const nodePaths = [
path.resolve(__dirname, "../deps"),
path.resolve(__dirname, "../_build/dev/lib")
];
let opts = {
entryPoints: ["js/app.js"],
bundle: true,
logLevel: "info",
target: "es2022",
outdir: "../priv/static/assets/js",
external: ["/fonts/*", "/images/*"],
alias: {
"phoenix-colocated/river_connect": path.resolve(__dirname, "js/phoenix-colocated-shim.js")
},
loader: {
".js": "jsx",
},
plugins: plugins,
};
process.env.NODE_PATH = nodePaths.join(path.delimiter);
if (deploy) {
opts = {
...opts,
minify: true,
};
}
if (watch) {
opts = {
...opts,
sourcemap: "inline",
};
esbuild.context(opts).then(ctx => {
ctx.watch();
});
} else {
esbuild.build(opts).catch(() => process.exit(1));
}