From bb55223c9b10b6f5877cd203682201c4950e4699 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Sun, 22 Feb 2026 08:49:30 -0800 Subject: [PATCH] Clean plugin build output directory before bundling --- crates-cli/yaak-cli/src/commands/plugin.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/crates-cli/yaak-cli/src/commands/plugin.rs b/crates-cli/yaak-cli/src/commands/plugin.rs index d6638480..b6b7b39e 100644 --- a/crates-cli/yaak-cli/src/commands/plugin.rs +++ b/crates-cli/yaak-cli/src/commands/plugin.rs @@ -218,6 +218,7 @@ struct PublishResponse { } async fn build_plugin_bundle(plugin_dir: &Path) -> CommandResult> { + prepare_build_output_dir(plugin_dir)?; let mut bundler = Bundler::new(bundler_options(plugin_dir, false)) .map_err(|err| format!("Failed to initialize Rolldown: {err}"))?; let output = bundler.write().await.map_err(|err| format!("Plugin build failed:\n{err}"))?; @@ -225,6 +226,16 @@ async fn build_plugin_bundle(plugin_dir: &Path) -> CommandResult> { Ok(output.warnings.into_iter().map(|w| w.to_string()).collect()) } +fn prepare_build_output_dir(plugin_dir: &Path) -> CommandResult { + let build_dir = plugin_dir.join("build"); + if build_dir.exists() { + fs::remove_dir_all(&build_dir) + .map_err(|e| format!("Failed to clean build directory {}: {e}", build_dir.display()))?; + } + fs::create_dir_all(&build_dir) + .map_err(|e| format!("Failed to create build directory {}: {e}", build_dir.display())) +} + fn bundler_options(plugin_dir: &Path, watch: bool) -> BundlerOptions { BundlerOptions { input: Some(vec![InputItem { import: "./src/index.ts".to_string(), ..Default::default() }]),