26 lines
988 B
TypeScript
26 lines
988 B
TypeScript
import { defineConfig } from 'tsup'
|
|
|
|
// Нативные модули остаются внешними (ставятся в образ отдельно),
|
|
// всё остальное (fastify, jose, drizzle, workspace-пакеты) бандлится в один файл.
|
|
const NATIVE = ['better-sqlite3', '@node-rs/argon2']
|
|
|
|
export default defineConfig({
|
|
entry: ['src/server.ts'],
|
|
format: ['esm'],
|
|
target: 'node22',
|
|
external: NATIVE,
|
|
noExternal: [/^(?!better-sqlite3$|@node-rs\/argon2).+/],
|
|
// CJS-зависимости внутри ESM-бандла используют require/__dirname.
|
|
banner: {
|
|
js: [
|
|
"import { createRequire as __cr } from 'node:module';",
|
|
"import { fileURLToPath as __fu } from 'node:url';",
|
|
"import { dirname as __dn } from 'node:path';",
|
|
'const require = __cr(import.meta.url);',
|
|
'const __filename = __fu(import.meta.url);',
|
|
'const __dirname = __dn(__filename);',
|
|
].join('\n'),
|
|
},
|
|
clean: true,
|
|
})
|