summaryrefslogtreecommitdiff
path: root/cli/lsp/documents.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-02-24 19:35:43 -0500
committerGitHub <noreply@github.com>2023-02-24 19:35:43 -0500
commit033b70af19300a4e34dcf19ab0031245bfc19625 (patch)
treeebcd8e9ebd85a974c9845af0291ab3bdb9765704 /cli/lsp/documents.rs
parent5683daf1aa1c01f5f4d01879d6ce054b0922faf6 (diff)
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
Diffstat (limited to 'cli/lsp/documents.rs')
-rw-r--r--cli/lsp/documents.rs8
1 files changed, 7 insertions, 1 deletions
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)) =