diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-09-04 16:00:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-04 14:00:44 +0000 |
commit | c6d1b0a1ccf45b7819b1e6f1efe8687b240f495a (patch) | |
tree | 6be2c0c611e4aee950402a34aaedd1c9b6bcaac3 /cli/module_loader.rs | |
parent | 13911eb8efb77bd14a80412072aecb664aa55fd5 (diff) |
fix(byonm): resolve npm deps of jsr deps (#25399)
This allows using npm deps of jsr deps without having to add them to the
root package.json.
Works by taking the package requirement and scanning the
`node_modules/.deno` directory for the best matching package, so it
relies on deno's node_modules structure.
Additionally to make the transition from package.json to deno.json
easier, Deno now:
1. Installs npm deps in a deno.json at the same time as installing npm
deps from a package.json.
2. Uses the alias in the import map for `node_modules/<alias>` for
better package.json compatiblity.
Diffstat (limited to 'cli/module_loader.rs')
-rw-r--r-- | cli/module_loader.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 3208d1365..186eb0210 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -401,7 +401,7 @@ impl<TGraphContainer: ModuleGraphContainer> fn inner_resolve( &self, - specifier: &str, + raw_specifier: &str, referrer: &ModuleSpecifier, ) -> Result<ModuleSpecifier, AnyError> { if self.shared.node_resolver.in_npm_package(referrer) { @@ -409,7 +409,7 @@ impl<TGraphContainer: ModuleGraphContainer> self .shared .node_resolver - .resolve(specifier, referrer, NodeResolutionMode::Execution)? + .resolve(raw_specifier, referrer, NodeResolutionMode::Execution)? .into_url(), ); } @@ -418,7 +418,7 @@ impl<TGraphContainer: ModuleGraphContainer> let resolution = match graph.get(referrer) { Some(Module::Js(module)) => module .dependencies - .get(specifier) + .get(raw_specifier) .map(|d| &d.maybe_code) .unwrap_or(&Resolution::None), _ => &Resolution::None, @@ -433,7 +433,7 @@ impl<TGraphContainer: ModuleGraphContainer> )); } Resolution::None => Cow::Owned(self.shared.resolver.resolve( - specifier, + raw_specifier, &deno_graph::Range { specifier: referrer.clone(), start: deno_graph::Position::zeroed(), |