From e423d13fca941aacafe98753a75a75589c71ef05 Mon Sep 17 00:00:00 2001 From: shulaoda <165626830+shulaoda@users.noreply.github.com> Date: Sat, 4 Jul 2026 17:03:52 +0800 Subject: [PATCH] fix(migrate): emit a single --check when rewriting prettier scripts --- crates/vite_migration/src/prettier.rs | 9 +++++++++ crates/vite_migration/src/script_rewrite.rs | 9 ++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/crates/vite_migration/src/prettier.rs b/crates/vite_migration/src/prettier.rs index db4ad7b0a1..d4505cb68d 100644 --- a/crates/vite_migration/src/prettier.rs +++ b/crates/vite_migration/src/prettier.rs @@ -225,6 +225,15 @@ mod tests { rewrite_prettier_script("prettier --check --list-different ."), "vp fmt --check ." ); + + // --list-different + --check (the other order) → still a single --check + assert_eq!( + rewrite_prettier_script("prettier --list-different --check ."), + "vp fmt --check ." + ); + + // two literal --check → still a single --check + assert_eq!(rewrite_prettier_script("prettier --check --check ."), "vp fmt --check ."); } #[test] diff --git a/crates/vite_migration/src/script_rewrite.rs b/crates/vite_migration/src/script_rewrite.rs index 64cdd60144..753ed60f4c 100644 --- a/crates/vite_migration/src/script_rewrite.rs +++ b/crates/vite_migration/src/script_rewrite.rs @@ -497,7 +497,14 @@ fn strip_flags_from_suffix( break; } if val == conv.dedup_flag { - conversion_emitted[ci] = true; + // Drop a duplicate if the target flag was already emitted; + // otherwise keep this one and mark it emitted. + if conversion_emitted[ci] { + converted = true; + } else { + conversion_emitted[ci] = true; + } + break; } } if converted {