diff --git a/crates/pm/src/service/binary.rs b/crates/pm/src/service/binary.rs index c6f95cb45..fe8755cc5 100644 --- a/crates/pm/src/service/binary.rs +++ b/crates/pm/src/service/binary.rs @@ -233,6 +233,10 @@ async fn handle_cypress( } pub async fn update_package_binary(dir: &Path, name: &str) -> Result<()> { + if should_skip_binary_mirror() { + return Ok(()); + } + let config = load_config().await?; let mirrors = config["mirrors"]["china"] @@ -282,12 +286,19 @@ pub async fn update_package_binary(dir: &Path, name: &str) -> Result<()> { Ok(()) } +fn should_skip_binary_mirror_for_registry(registry: &str) -> bool { + is_npm_registry(registry) +} + fn should_skip_binary_mirror() -> bool { *SKIP_BINARY_MIRROR.get_or_init(|| { let registry = get_registry(); - let skip = is_npm_registry(®istry); + let skip = should_skip_binary_mirror_for_registry(®istry); if skip { - tracing::debug!("Skipping binary mirror envs for npm registry: {}", registry); + tracing::debug!( + "Skipping binary mirror config for npm registry: {}", + registry + ); } skip }) @@ -344,6 +355,19 @@ mod tests { ); } + #[test] + fn test_should_skip_binary_mirror_for_npm_registry() { + assert!(should_skip_binary_mirror_for_registry( + "https://registry.npmjs.org" + )); + assert!(should_skip_binary_mirror_for_registry( + "https://registry.npmjs.org/" + )); + assert!(!should_skip_binary_mirror_for_registry( + "https://registry.npmmirror.com" + )); + } + #[tokio::test] async fn test_should_handle_replace_host() { let binary_mirror = serde_json::from_value::>(json!({