From 11f225ef7d8d51a048c11c57f47674e1c5bb6f3e Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 13 Mar 2023 10:03:19 -0400 Subject: fix: ensure no node_modules directory is created when a package.json exists and no npm dependencies are used (#18134) Closes #18133 Closes #18038 --- cli/npm/resolution/snapshot.rs | 5 +++++ cli/npm/resolvers/local.rs | 4 ++++ 2 files changed, 9 insertions(+) (limited to 'cli/npm') diff --git a/cli/npm/resolution/snapshot.rs b/cli/npm/resolution/snapshot.rs index e986294ec..e8df8286e 100644 --- a/cli/npm/resolution/snapshot.rs +++ b/cli/npm/resolution/snapshot.rs @@ -127,6 +127,11 @@ mod map_to_vec { } impl NpmResolutionSnapshot { + /// Gets if this snapshot is empty. + pub fn is_empty(&self) -> bool { + self.packages.is_empty() && self.pending_unresolved_packages.is_empty() + } + /// Resolve a package from a package requirement. pub fn resolve_pkg_from_pkg_req( &self, diff --git a/cli/npm/resolvers/local.rs b/cli/npm/resolvers/local.rs index 89f5decd8..3e2710165 100644 --- a/cli/npm/resolvers/local.rs +++ b/cli/npm/resolvers/local.rs @@ -236,6 +236,10 @@ async fn sync_resolution_with_fs( registry_url: &Url, root_node_modules_dir_path: &Path, ) -> Result<(), AnyError> { + if snapshot.is_empty() { + return Ok(()); // don't create the directory + } + let deno_local_registry_dir = root_node_modules_dir_path.join(".deno"); fs::create_dir_all(&deno_local_registry_dir).with_context(|| { format!("Creating '{}'", deno_local_registry_dir.display()) -- cgit v1.2.3