2023-09-03 10:59:33 +08:00
|
|
|
import path from 'path';
|
2024-06-13 15:56:43 +08:00
|
|
|
|
2023-09-03 10:59:33 +08:00
|
|
|
import chalk from 'chalk';
|
2024-06-13 15:56:43 +08:00
|
|
|
import fg from 'fast-glob';
|
|
|
|
import { build } from 'tsup';
|
|
|
|
|
|
|
|
import { EsbuildSupportExts, globExcludeFiles } from './constant';
|
2023-09-15 08:51:20 +08:00
|
|
|
import { PkgLog, UserConfig } from './utils';
|
2023-09-03 10:59:33 +08:00
|
|
|
|
2023-09-15 08:51:20 +08:00
|
|
|
export function buildCjs(cwd: string, userConfig: UserConfig, sourcemap: boolean = false, log: PkgLog) {
|
2023-09-03 10:59:33 +08:00
|
|
|
log('build cjs');
|
|
|
|
|
|
|
|
const entry = fg.globSync(['src/**', ...globExcludeFiles], { cwd, absolute: true });
|
|
|
|
const outDir = path.join(cwd, 'lib');
|
2024-06-13 15:56:43 +08:00
|
|
|
const otherExts = Array.from(
|
|
|
|
new Set(entry.map((item) => path.extname(item)).filter((item) => !EsbuildSupportExts.includes(item))),
|
|
|
|
);
|
2023-09-03 10:59:33 +08:00
|
|
|
if (otherExts.length) {
|
|
|
|
log('%s will not be processed, only be copied to the lib directory.', chalk.yellow(otherExts.join(',')));
|
|
|
|
}
|
2024-06-13 15:56:43 +08:00
|
|
|
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,
|
|
|
|
}),
|
|
|
|
);
|
2023-09-03 10:59:33 +08:00
|
|
|
}
|