From 033b70af19300a4e34dcf19ab0031245bfc19625 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 24 Feb 2023 19:35:43 -0500 Subject: fix(npm): lazily install package.json dependencies only when necessary (#17931) This lazily does an "npm install" when any package name matches what's found in the package.json or when running a script from package.json with deno task. Part of #17916 Closes #17928 --- cli/lsp/documents.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'cli/lsp') diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index 88efc8074..0acfdbe1f 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -21,6 +21,7 @@ use crate::node::NodeResolution; use crate::npm::NpmPackageResolver; use crate::npm::NpmRegistryApi; use crate::npm::NpmResolution; +use crate::npm::PackageJsonDepsInstaller; use crate::resolver::CliGraphResolver; use crate::util::path::specifier_to_file_path; use crate::util::text_encoding; @@ -1212,13 +1213,18 @@ impl Documents { None => Vec::new(), } }); + let deps_installer = PackageJsonDepsInstaller::new( + npm_registry_api.clone(), + npm_resolution.clone(), + maybe_package_json_deps, + ); self.resolver = CliGraphResolver::new( maybe_jsx_config, maybe_import_map, false, npm_registry_api, npm_resolution, - maybe_package_json_deps, + deps_installer, ); self.imports = Arc::new( if let Some(Ok(imports)) = -- cgit v1.2.3