mirror of
https://github.com/denoland/deno.git
synced 2025-07-24 05:35:33 +00:00
fix(npm): resolve dynamic npm imports individually (#24170)
* https://github.com/denoland/deno_npm/pull/57 * https://github.com/denoland/deno_graph/pull/498 Closes https://github.com/denoland/deno/issues/17802
This commit is contained in:
parent
6a356aff13
commit
4bc96c5d2a
19 changed files with 263 additions and 453 deletions
|
@ -160,6 +160,10 @@ pub fn graph_valid(
|
|||
if let Some(error) = errors.next() {
|
||||
Err(error)
|
||||
} else {
|
||||
// finally surface the npm resolution result
|
||||
if let Err(err) = &graph.npm_dep_graph_result {
|
||||
return Err(custom_error(get_error_class_name(err), format!("{}", err)));
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
@ -562,30 +566,9 @@ impl ModuleGraphBuilder {
|
|||
let initial_redirects_len = graph.redirects.len();
|
||||
let initial_package_deps_len = graph.packages.package_deps_sum();
|
||||
let initial_package_mappings_len = graph.packages.mappings().len();
|
||||
let initial_npm_packages = graph.npm_packages.len();
|
||||
|
||||
graph.build(roots, loader, options).await;
|
||||
|
||||
let has_npm_packages_changed =
|
||||
graph.npm_packages.len() != initial_npm_packages;
|
||||
// skip installing npm packages if we don't have to
|
||||
if is_first_execution
|
||||
&& self.npm_resolver.root_node_modules_path().is_some()
|
||||
|| has_npm_packages_changed
|
||||
{
|
||||
if let Some(npm_resolver) = self.npm_resolver.as_managed() {
|
||||
// ensure that the top level package.json is installed if a
|
||||
// specifier was matched in the package.json
|
||||
if self.resolver.found_package_json_dep() {
|
||||
npm_resolver.ensure_top_level_package_json_install().await?;
|
||||
}
|
||||
|
||||
// resolve the dependencies of any pending dependencies
|
||||
// that were inserted by building the graph
|
||||
npm_resolver.resolve_pending().await?;
|
||||
}
|
||||
}
|
||||
|
||||
let has_redirects_changed = graph.redirects.len() != initial_redirects_len;
|
||||
let has_jsr_package_deps_changed =
|
||||
graph.packages.package_deps_sum() != initial_package_deps_len;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue