diff options
| author | David Sherret <dsherret@users.noreply.github.com> | 2023-02-24 19:35:43 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-24 19:35:43 -0500 |
| commit | 033b70af19300a4e34dcf19ab0031245bfc19625 (patch) | |
| tree | ebcd8e9ebd85a974c9845af0291ab3bdb9765704 /cli/lsp | |
| parent | 5683daf1aa1c01f5f4d01879d6ce054b0922faf6 (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')
| -rw-r--r-- | cli/lsp/documents.rs | 8 |
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)) = |
