From a44de02a01291af57eb9394be137ef5f7f02b56d Mon Sep 17 00:00:00 2001 From: xierenyuan Date: Fri, 25 Jul 2025 13:58:44 +0800 Subject: [PATCH 1/2] feat: add clean option to clear output path before bundling --- .../bundler-shared-config/src/provider/BaseBundler.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/bundler-shared-config/src/provider/BaseBundler.ts b/packages/bundler-shared-config/src/provider/BaseBundler.ts index e733956..eccdacd 100644 --- a/packages/bundler-shared-config/src/provider/BaseBundler.ts +++ b/packages/bundler-shared-config/src/provider/BaseBundler.ts @@ -5,7 +5,7 @@ import type { Stats, } from '@kmijs/bundler-shared/rspack' import type { Configuration } from '@kmijs/bundler-shared/rspack' -import { logger } from '@kmijs/shared' +import { logger, rimraf } from '@kmijs/shared' import { Env, type IUserConfig } from '../types' import { esbuildCompressErrorHelper } from '../utils/esbuildCompressErrorHelper' import type { @@ -72,6 +72,14 @@ export abstract class BaseBundler< let isFirstCompile = true return new Promise((resolve, reject) => { + if (opts.clean) { + bundlerConfigs.forEach((config) => { + if (config.output?.path) { + rimraf.sync(config.output.path) + } + }) + } + const compiler = this.createCompiler({ ...buildOptions, bundlerConfigs, From bff07ea8868b4e0a69b79bfec8a64d6e4b2407fa Mon Sep 17 00:00:00 2001 From: xierenyuan Date: Fri, 25 Jul 2025 14:07:55 +0800 Subject: [PATCH 2/2] feat: add logging for output directory cleanup operations --- examples/ant-pro/.gitignore | 1 + .../bundler-shared-config/src/provider/BaseBundler.ts | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/examples/ant-pro/.gitignore b/examples/ant-pro/.gitignore index 0fb3670..1dae949 100644 --- a/examples/ant-pro/.gitignore +++ b/examples/ant-pro/.gitignore @@ -39,3 +39,4 @@ screenshot .eslintcache build +.takumi/todos diff --git a/packages/bundler-shared-config/src/provider/BaseBundler.ts b/packages/bundler-shared-config/src/provider/BaseBundler.ts index eccdacd..051769b 100644 --- a/packages/bundler-shared-config/src/provider/BaseBundler.ts +++ b/packages/bundler-shared-config/src/provider/BaseBundler.ts @@ -75,7 +75,16 @@ export abstract class BaseBundler< if (opts.clean) { bundlerConfigs.forEach((config) => { if (config.output?.path) { - rimraf.sync(config.output.path) + try { + logger.verbose( + `[BaseBundler] Cleaning output directory: ${config.output.path}`, + ) + rimraf.sync(config.output.path) + } catch (error) { + logger.verbose( + `[BaseBundler] Cleaning output directory: ${config.output.path} failed`, + ) + } } }) }