diff --git a/crates/vite_global_cli/src/commands/upgrade/registry.rs b/crates/vite_global_cli/src/commands/upgrade/registry.rs index 021b0399f2..170ac257c3 100644 --- a/crates/vite_global_cli/src/commands/upgrade/registry.rs +++ b/crates/vite_global_cli/src/commands/upgrade/registry.rs @@ -45,7 +45,8 @@ pub async fn resolve_version( registry_override: Option<&str>, ) -> Result { let default_registry = npm_registry(); - let registry = registry_override.unwrap_or(&default_registry); + let registry_raw = registry_override.unwrap_or(&default_registry); + let registry = registry_raw.trim_end_matches('/'); let client = HttpClient::new(); // Step 1: Fetch main package metadata to resolve version diff --git a/crates/vite_shared/src/env_config.rs b/crates/vite_shared/src/env_config.rs index 7d0b4fdf85..a7fe0bfac5 100644 --- a/crates/vite_shared/src/env_config.rs +++ b/crates/vite_shared/src/env_config.rs @@ -133,7 +133,9 @@ impl EnvConfig { vite_plus_home: std::env::var(env_vars::VITE_PLUS_HOME).ok().map(PathBuf::from), npm_registry: std::env::var(env_vars::NPM_CONFIG_REGISTRY) .or_else(|_| std::env::var(env_vars::NPM_CONFIG_REGISTRY_UPPER)) - .unwrap_or_else(|_| "https://registry.npmjs.org".into()), + .unwrap_or_else(|_| "https://registry.npmjs.org".into()) + .trim_end_matches('/') + .to_string(), node_dist_mirror: std::env::var(env_vars::VITE_NODE_DIST_MIRROR).ok(), is_ci: std::env::var("CI").is_ok(), bypass_shim: std::env::var(env_vars::VITE_PLUS_BYPASS).is_ok(),