From 17b30ccc4899c2b9c1b17ae6153992fded81b73e Mon Sep 17 00:00:00 2001 From: Liang Mi Date: Fri, 10 Jul 2026 09:52:34 +0800 Subject: [PATCH 1/3] fix(cli): avoid debug formatting in user output --- crates/vite_error/src/lib.rs | 9 +++++---- .../vite_global_cli/src/commands/global/install.rs | 4 +--- crates/vite_global_cli/src/js_executor.rs | 5 ++++- crates/vite_install/src/package_manager.rs | 12 ++++++------ crates/vite_js_runtime/src/runtime.rs | 6 +++++- crates/vite_pm_cli/src/helpers.rs | 2 +- .../snap.txt | 2 +- .../command-env-install-fail/snap.txt | 2 +- 8 files changed, 24 insertions(+), 18 deletions(-) diff --git a/crates/vite_error/src/lib.rs b/crates/vite_error/src/lib.rs index 09f23ed57e..e4ef19f34f 100644 --- a/crates/vite_error/src/lib.rs +++ b/crates/vite_error/src/lib.rs @@ -11,7 +11,7 @@ pub enum Error { #[error(transparent)] Io(#[from] std::io::Error), - #[error("IO error: {err} at {path:?}")] + #[error("IO error: {err} at {}", .path.as_path().display())] IoWithPath { err: std::io::Error, path: Arc }, #[error(transparent)] @@ -66,20 +66,21 @@ pub enum Error { #[error("Resolve universal vite config failed")] ResolveUniversalViteConfigFailed { status: Str, reason: Str }, - #[error("The path ({path:?}) is not a valid relative path because: {reason}")] + #[error("The path ({}) is not a valid relative path because: {reason}", .path.display())] InvalidRelativePath { path: Box, reason: FromPathError }, #[error("Unsupported package manager: {0}")] UnsupportedPackageManager(Str), - #[error("devEngines.packageManager {0:?} is not supported (supported: pnpm, yarn, npm, bun)")] + #[error("devEngines.packageManager \"{0}\" is not supported (supported: pnpm, yarn, npm, bun)")] UnsupportedDevEnginesPackageManager(Str), #[error("Unrecognized any package manager, please specify the package manager")] UnrecognizedPackageManager, #[error( - "Package manager {name}@{version} in {package_json_path:?} is invalid, expected format: 'package-manager-name@major.minor.patch'" + "Package manager {name}@{version} in {} is invalid, expected format: 'package-manager-name@major.minor.patch'", + .package_json_path.as_path().display() )] PackageManagerVersionInvalid { name: Str, version: Str, package_json_path: AbsolutePathBuf }, diff --git a/crates/vite_global_cli/src/commands/global/install.rs b/crates/vite_global_cli/src/commands/global/install.rs index 0b09e52493..d2618c5314 100644 --- a/crates/vite_global_cli/src/commands/global/install.rs +++ b/crates/vite_global_cli/src/commands/global/install.rs @@ -557,9 +557,7 @@ async fn install_one( } let _ = std::io::stderr().write_all(&output.stderr); cleanup_failed_install(&install_dir).await?; - return Err(Error::Other( - format!("npm install failed with exit code: {:?}", output.status.code()).into(), - )); + return Err(Error::Other(format!("npm install failed with {}", output.status).into())); } let node_modules_dir = get_node_modules_dir(&install_dir, package_name); diff --git a/crates/vite_global_cli/src/js_executor.rs b/crates/vite_global_cli/src/js_executor.rs index a4e6eee9d0..9497404d55 100644 --- a/crates/vite_global_cli/src/js_executor.rs +++ b/crates/vite_global_cli/src/js_executor.rs @@ -497,7 +497,10 @@ async fn find_system_node_runtime() -> Option { return None; } let system_node = shim::find_system_tool("node")?; - tracing::info!("System-first mode: using system Node.js at {:?}", system_node); + tracing::info!( + "System-first mode: using system Node.js at {}", + system_node.as_path().display() + ); Some(JsRuntime::from_system(JsRuntimeType::Node, system_node)) } diff --git a/crates/vite_install/src/package_manager.rs b/crates/vite_install/src/package_manager.rs index e7fcb975f1..3a4f9e6db2 100644 --- a/crates/vite_install/src/package_manager.rs +++ b/crates/vite_install/src/package_manager.rs @@ -486,7 +486,7 @@ fn get_package_manager_from_dev_engines( || node_semver::Range::parse(version.as_str()).is_ok(); if !valid { vite_shared::output::warn(&format!( - "invalid devEngines.packageManager version {version:?} for \ + "invalid devEngines.packageManager version \"{version}\" for \ {package_manager_type}, treating as any version" )); } @@ -501,7 +501,7 @@ fn get_package_manager_from_dev_engines( OnFail::Ignore => Ok(None), OnFail::Warn => { vite_shared::output::warn(&format!( - "devEngines.packageManager {names:?} is not supported \ + "devEngines.packageManager \"{names}\" is not supported \ (supported: pnpm, yarn, npm, bun)" )); Ok(None) @@ -549,7 +549,7 @@ fn dev_engines_package_manager_conflict_message( return Some( format!( "packageManager is {name}@{version} but devEngines.packageManager \ - requires {names:?}. This will become an error in a future release.", + requires \"{names}\". This will become an error in a future release.", version = resolution.version ) .into(), @@ -563,7 +563,7 @@ fn dev_engines_package_manager_conflict_message( return Some( format!( "packageManager {name}@{version} does not satisfy \ - devEngines.packageManager {required:?}. This will become an error in a \ + devEngines.packageManager \"{required}\". This will become an error in a \ future release.", version = resolution.version ) @@ -786,7 +786,7 @@ async fn resolve_package_manager_range( let range = node_semver::Range::parse(version_req).map_err(|_| { Error::InvalidArgument( format!( - "invalid {package_manager_type} version {version_req:?}: expected semver \ + "invalid {package_manager_type} version \"{version_req}\": expected semver \ 'major.minor.patch' or a semver range" ) .into(), @@ -831,7 +831,7 @@ pub async fn download_package_manager( let parsed_version = Version::parse(&version).map_err(|_| { Error::InvalidArgument( format!( - "invalid {package_manager_type} version {version:?}: expected semver 'major.minor.patch'" + "invalid {package_manager_type} version \"{version}\": expected semver 'major.minor.patch'" ) .into(), ) diff --git a/crates/vite_js_runtime/src/runtime.rs b/crates/vite_js_runtime/src/runtime.rs index 8be4c61cb1..5067e2901d 100644 --- a/crates/vite_js_runtime/src/runtime.rs +++ b/crates/vite_js_runtime/src/runtime.rs @@ -274,7 +274,11 @@ pub async fn download_runtime_with_provider( // Move extracted directory to cache location move_to_cache(&extracted_path, &install_dir, version).await?; - tracing::info!("{} {version} installed at {install_dir:?}", provider.name()); + tracing::info!( + "{} {version} installed at {}", + provider.name(), + install_dir.as_path().display() + ); Ok(JsRuntime { runtime_type, diff --git a/crates/vite_pm_cli/src/helpers.rs b/crates/vite_pm_cli/src/helpers.rs index 2c87a7c365..c6603c8ab8 100644 --- a/crates/vite_pm_cli/src/helpers.rs +++ b/crates/vite_pm_cli/src/helpers.rs @@ -62,7 +62,7 @@ pub async fn ensure_package_json(project_path: &AbsolutePath) -> Result<(), Erro Ok(mut file) => { file.write_all(content.as_bytes()).await?; file.write_all(b"\n").await?; - tracing::info!("Created package.json in {:?}", project_path); + tracing::info!("Created package.json in {}", project_path.as_path().display()); Ok(()) } Err(err) if err.kind() == std::io::ErrorKind::AlreadyExists => Ok(()), diff --git a/packages/cli/snap-tests-global/command-env-global-install-multiple-fail/snap.txt b/packages/cli/snap-tests-global/command-env-global-install-multiple-fail/snap.txt index 9ea8f4dde5..e748ae56f8 100644 --- a/packages/cli/snap-tests-global/command-env-global-install-multiple-fail/snap.txt +++ b/packages/cli/snap-tests-global/command-env-global-install-multiple-fail/snap.txt @@ -11,7 +11,7 @@ npm error A complete log of this run can be found in: /.npm/_logs/