quality / changes (push) Successful in 6s
quality / web (push) Skipped
quality / commitlint (push) Skipped
quality / api (push) Successful in 52s
quality / docker-check (push) Failing after 1m7s
CD / quality (push) Failing after 2m8s
CD / publish (push) Skipped
28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
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'),
|
|
},
|
|
// Один файл: динамические import() (напр. CLI backup) не должны порождать чанки.
|
|
splitting: false,
|
|
clean: true,
|
|
})
|