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/tools/task.rs | |
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/tools/task.rs')
-rw-r--r-- | cli/tools/task.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/cli/tools/task.rs b/cli/tools/task.rs index 721c47696..9b76f256c 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -60,6 +60,11 @@ pub async fn execute_script( .await; Ok(exit_code) } else if let Some(script) = package_json_scripts.get(task_name) { + ps.package_json_deps_installer + .ensure_top_level_install() + .await?; + ps.npm_resolver.resolve_pending().await?; + let cwd = match task_flags.cwd { Some(path) => canonicalize_path(&PathBuf::from(path))?, None => maybe_package_json |