Files

36 lines
900 B
JavaScript
Raw Permalink Normal View History

import { build } from 'esbuild';
import fs from 'node:fs';
import path from 'node:path';
const projectRoot = process.cwd();
const pkgPath = path.join(projectRoot, 'package.json');
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
const dependencies = Object.keys(pkg.dependencies ?? {});
const optionalDependencies = Object.keys(pkg.optionalDependencies ?? {});
const peerDependencies = Object.keys(pkg.peerDependencies ?? {});
const externals = Array.from(
new Set([
...dependencies,
...optionalDependencies,
...peerDependencies,
// also keep these as runtime externals
'sqlite3',
]),
);
await build({
entryPoints: ['api/server.ts'],
outfile: 'dist/api/server.js',
bundle: true,
platform: 'node',
format: 'esm',
target: ['node20'],
sourcemap: true,
logLevel: 'info',
external: externals,
});
console.log('Built backend -> dist/api/server.js');