90 lines
2.2 KiB
TypeScript
90 lines
2.2 KiB
TypeScript
import { $ } from "bun";
|
|
import { dir } from "dir";
|
|
import { context } from "esbuild";
|
|
import { removeAsync } from "fs-jetpack";
|
|
import { polyfillNode } from "esbuild-plugin-polyfill-node";
|
|
|
|
await removeAsync(dir.path("/app/srv/core"));
|
|
await $`bun tailwindcss -i src/nova/prod/tailwind.css -o ../srv/core/index.css`
|
|
.cwd(dir.path(`/app/web`))
|
|
.quiet()
|
|
.nothrow();
|
|
|
|
const ctx = await context({
|
|
bundle: true,
|
|
absWorkingDir: dir.path(""),
|
|
entryPoints: [dir.path("app/web/src/nova/prod/main.tsx")],
|
|
outdir: dir.path(`/app/srv/core`),
|
|
splitting: true,
|
|
format: "esm",
|
|
jsx: "transform",
|
|
minify: true,
|
|
sourcemap: true,
|
|
logLevel: "error",
|
|
metafile: true,
|
|
assetNames: `[name]`,
|
|
loader: { ".woff": "file", ".ttf": "file", ".woff2": "file" },
|
|
define: {
|
|
"process.env.NODE_ENV": `"production"`,
|
|
},
|
|
plugins: [
|
|
polyfillNode({
|
|
polyfills: {
|
|
buffer: true,
|
|
_stream_duplex: false,
|
|
_stream_passthrough: false,
|
|
_stream_readable: false,
|
|
_stream_transform: false,
|
|
_stream_writable: false,
|
|
assert: false,
|
|
async_hooks: false,
|
|
child_process: false,
|
|
cluster: false,
|
|
console: false,
|
|
constants: false,
|
|
crypto: false,
|
|
dgram: false,
|
|
diagnostics_channel: false,
|
|
dns: false,
|
|
domain: false,
|
|
events: false,
|
|
fs: false,
|
|
http: false,
|
|
http2: false,
|
|
https: false,
|
|
module: false,
|
|
net: false,
|
|
os: false,
|
|
path: false,
|
|
perf_hooks: false,
|
|
process: false,
|
|
punycode: false,
|
|
querystring: false,
|
|
readline: false,
|
|
repl: false,
|
|
stream: false,
|
|
string_decoder: false,
|
|
sys: false,
|
|
timers: false,
|
|
tls: false,
|
|
tty: false,
|
|
url: false,
|
|
util: false,
|
|
v8: false,
|
|
vm: false,
|
|
wasi: false,
|
|
worker_threads: false,
|
|
zlib: false,
|
|
"assert/strict": false,
|
|
"fs/promises": false,
|
|
"timers/promises": false,
|
|
},
|
|
}),
|
|
],
|
|
});
|
|
|
|
ctx.rebuild().then((e) => {
|
|
Bun.write(dir.data("metafile.json"), JSON.stringify(e.metafile));
|
|
});
|
|
ctx.watch();
|