From 39001a03926eac0b8641fdb7061e58e9e039259e Mon Sep 17 00:00:00 2001 From: LongYinan Date: Wed, 12 Nov 2025 15:16:10 +0800 Subject: [PATCH 1/2] fix(cli): Windows path issues --- packages/cli/binding/src/commands/doc.rs | 8 ++++++-- packages/cli/binding/src/commands/fmt.rs | 8 ++++++-- packages/cli/binding/src/commands/lib_cmd.rs | 8 ++++++-- packages/cli/binding/src/commands/lint.rs | 8 ++++++-- packages/cli/binding/src/commands/test.rs | 8 ++++++-- packages/cli/binding/src/commands/vite.rs | 8 ++++++-- packages/cli/build.ts | 2 +- 7 files changed, 37 insertions(+), 13 deletions(-) diff --git a/packages/cli/binding/src/commands/doc.rs b/packages/cli/binding/src/commands/doc.rs index 70b987017e..c7c726ffd9 100644 --- a/packages/cli/binding/src/commands/doc.rs +++ b/packages/cli/binding/src/commands/doc.rs @@ -16,8 +16,12 @@ pub async fn doc< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_doc_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = - || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; + let wrapped_command = || async { + Ok(ResolveCommandResult { + bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), + envs: envs.clone(), + }) + }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/fmt.rs b/packages/cli/binding/src/commands/fmt.rs index 2ba8318b5f..438ddfdb81 100644 --- a/packages/cli/binding/src/commands/fmt.rs +++ b/packages/cli/binding/src/commands/fmt.rs @@ -24,8 +24,12 @@ pub async fn fmt< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_fmt_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = - || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; + let wrapped_command = || async { + Ok(ResolveCommandResult { + bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), + envs: envs.clone(), + }) + }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/lib_cmd.rs b/packages/cli/binding/src/commands/lib_cmd.rs index c8ee547f7f..69ca6bc50b 100644 --- a/packages/cli/binding/src/commands/lib_cmd.rs +++ b/packages/cli/binding/src/commands/lib_cmd.rs @@ -17,8 +17,12 @@ pub async fn lib< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_lib_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = - || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; + let wrapped_command = || async { + Ok(ResolveCommandResult { + bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), + envs: envs.clone(), + }) + }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/lint.rs b/packages/cli/binding/src/commands/lint.rs index b3c6d995cc..0667c86953 100644 --- a/packages/cli/binding/src/commands/lint.rs +++ b/packages/cli/binding/src/commands/lint.rs @@ -23,8 +23,12 @@ pub async fn lint< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_lint_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = - || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; + let wrapped_command = || async { + Ok(ResolveCommandResult { + bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), + envs: envs.clone(), + }) + }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/test.rs b/packages/cli/binding/src/commands/test.rs index dbfc704d79..07cec95d05 100644 --- a/packages/cli/binding/src/commands/test.rs +++ b/packages/cli/binding/src/commands/test.rs @@ -16,8 +16,12 @@ pub async fn test< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_test_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = - || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; + let wrapped_command = || async { + Ok(ResolveCommandResult { + bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), + envs: envs.clone(), + }) + }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/vite.rs b/packages/cli/binding/src/commands/vite.rs index 6449d2dbd1..060450ca9b 100644 --- a/packages/cli/binding/src/commands/vite.rs +++ b/packages/cli/binding/src/commands/vite.rs @@ -17,8 +17,12 @@ pub async fn vite< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_vite_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = - || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; + let wrapped_command = || async { + Ok(ResolveCommandResult { + bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), + envs: envs.clone(), + }) + }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/build.ts b/packages/cli/build.ts index 76f3b7e75f..094ccc8c92 100644 --- a/packages/cli/build.ts +++ b/packages/cli/build.ts @@ -115,7 +115,7 @@ async function buildVite() { { name: 'rewrite-static-paths', transform(_, id, meta) { - if (id.endsWith('vite/src/node/constants.ts')) { + if (id.endsWith(join('vite', 'src', 'node', 'constants.ts'))) { const { magicString } = meta; if (magicString) { magicString.replace( From 72ad478bc79c7868815e75278cc103c795559376 Mon Sep 17 00:00:00 2001 From: LongYinan Date: Wed, 12 Nov 2025 16:14:15 +0800 Subject: [PATCH 2/2] revert .exe patch --- packages/cli/binding/src/commands/doc.rs | 8 ++------ packages/cli/binding/src/commands/fmt.rs | 8 ++------ packages/cli/binding/src/commands/lib_cmd.rs | 8 ++------ packages/cli/binding/src/commands/lint.rs | 8 ++------ packages/cli/binding/src/commands/test.rs | 8 ++------ packages/cli/binding/src/commands/vite.rs | 8 ++------ 6 files changed, 12 insertions(+), 36 deletions(-) diff --git a/packages/cli/binding/src/commands/doc.rs b/packages/cli/binding/src/commands/doc.rs index c7c726ffd9..70b987017e 100644 --- a/packages/cli/binding/src/commands/doc.rs +++ b/packages/cli/binding/src/commands/doc.rs @@ -16,12 +16,8 @@ pub async fn doc< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_doc_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = || async { - Ok(ResolveCommandResult { - bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), - envs: envs.clone(), - }) - }; + let wrapped_command = + || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/fmt.rs b/packages/cli/binding/src/commands/fmt.rs index 438ddfdb81..2ba8318b5f 100644 --- a/packages/cli/binding/src/commands/fmt.rs +++ b/packages/cli/binding/src/commands/fmt.rs @@ -24,12 +24,8 @@ pub async fn fmt< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_fmt_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = || async { - Ok(ResolveCommandResult { - bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), - envs: envs.clone(), - }) - }; + let wrapped_command = + || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/lib_cmd.rs b/packages/cli/binding/src/commands/lib_cmd.rs index 69ca6bc50b..c8ee547f7f 100644 --- a/packages/cli/binding/src/commands/lib_cmd.rs +++ b/packages/cli/binding/src/commands/lib_cmd.rs @@ -17,12 +17,8 @@ pub async fn lib< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_lib_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = || async { - Ok(ResolveCommandResult { - bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), - envs: envs.clone(), - }) - }; + let wrapped_command = + || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/lint.rs b/packages/cli/binding/src/commands/lint.rs index 0667c86953..b3c6d995cc 100644 --- a/packages/cli/binding/src/commands/lint.rs +++ b/packages/cli/binding/src/commands/lint.rs @@ -23,12 +23,8 @@ pub async fn lint< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_lint_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = || async { - Ok(ResolveCommandResult { - bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), - envs: envs.clone(), - }) - }; + let wrapped_command = + || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/test.rs b/packages/cli/binding/src/commands/test.rs index 07cec95d05..dbfc704d79 100644 --- a/packages/cli/binding/src/commands/test.rs +++ b/packages/cli/binding/src/commands/test.rs @@ -16,12 +16,8 @@ pub async fn test< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_test_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = || async { - Ok(ResolveCommandResult { - bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), - envs: envs.clone(), - }) - }; + let wrapped_command = + || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command, diff --git a/packages/cli/binding/src/commands/vite.rs b/packages/cli/binding/src/commands/vite.rs index 060450ca9b..6449d2dbd1 100644 --- a/packages/cli/binding/src/commands/vite.rs +++ b/packages/cli/binding/src/commands/vite.rs @@ -17,12 +17,8 @@ pub async fn vite< ) -> Result { let ResolveCommandResult { bin_path, envs } = resolve_vite_command().await.map_err(|e| Error::Anyhow(e.into()))?; - let wrapped_command = || async { - Ok(ResolveCommandResult { - bin_path: (if cfg!(windows) { "node.exe" } else { "node" }).into(), - envs: envs.clone(), - }) - }; + let wrapped_command = + || async { Ok(ResolveCommandResult { bin_path: "node".into(), envs: envs.clone() }) }; let resolved_task = ResolvedTask::resolve_from_builtin( workspace, wrapped_command,