tachybase_todo/packages/core/build/src/buildCjs.ts
jack zhang 9e5e96b9e4
fix: improve build (#2643)
* fix: client lib require wrapper

* fix: bug

* fix: add tsconfig.paths.json

* fix: collection dir not exists

* fix: improve...

* fix: update yarn.lock

* fix: db.sync

* fix: bugs

* fix: bugs

* fix: bugs

* fix: bugs && allow user custom build config

* docs: user custom config docs

* refactor: custom user build config

* fix: bugs

* fix: build plugin-client bug

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-09-15 08:51:20 +08:00

36 lines
1.1 KiB
TypeScript

import { build } from 'tsup';
import fg from 'fast-glob';
import path from 'path';
import chalk from 'chalk';
import { globExcludeFiles, EsbuildSupportExts } from './constant';
import { PkgLog, UserConfig } from './utils';
export function buildCjs(cwd: string, userConfig: UserConfig, sourcemap: boolean = false, log: PkgLog) {
log('build cjs');
const entry = fg.globSync(['src/**', ...globExcludeFiles], { cwd, absolute: true });
const outDir = path.join(cwd, 'lib');
const otherExts = Array.from(new Set(entry.map((item) => path.extname(item)).filter((item) => !EsbuildSupportExts.includes(item))));
if (otherExts.length) {
log('%s will not be processed, only be copied to the lib directory.', chalk.yellow(otherExts.join(',')));
}
return build(userConfig.modifyTsupConfig({
entry,
splitting: false,
clean: true,
bundle: false,
silent: true,
sourcemap,
treeshake: false,
target: 'node16',
keepNames: true,
outDir,
loader: {
...otherExts.reduce((prev, cur) => ({ ...prev, [cur]: 'copy' }), {}),
'.json': 'copy',
},
format: 'cjs',
skipNodeModulesBundle: true,
}));
}