summaryrefslogtreecommitdiff
path: root/cli/node/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/node/mod.rs')
-rw-r--r--cli/node/mod.rs32
1 files changed, 22 insertions, 10 deletions
diff --git a/cli/node/mod.rs b/cli/node/mod.rs
index 2ec9295dd..c265afdf6 100644
--- a/cli/node/mod.rs
+++ b/cli/node/mod.rs
@@ -26,11 +26,11 @@ use deno_runtime::deno_node::package_imports_resolve;
use deno_runtime::deno_node::package_resolve;
use deno_runtime::deno_node::NodeModuleKind;
use deno_runtime::deno_node::PackageJson;
+use deno_runtime::deno_node::PathClean;
use deno_runtime::deno_node::RequireNpmResolver;
use deno_runtime::deno_node::DEFAULT_CONDITIONS;
use deno_runtime::deno_node::NODE_GLOBAL_THIS_NAME;
use once_cell::sync::Lazy;
-use path_clean::PathClean;
use regex::Regex;
use crate::file_fetcher::FileFetcher;
@@ -433,9 +433,8 @@ pub fn node_resolve_npm_reference(
reference: &NpmPackageReference,
npm_resolver: &NpmPackageResolver,
) -> Result<Option<NodeResolution>, AnyError> {
- let package_folder = npm_resolver
- .resolve_package_from_deno_module(&reference.req)?
- .folder_path;
+ let package_folder =
+ npm_resolver.resolve_package_folder_from_deno_module(&reference.req)?;
let resolved_path = package_config_resolve(
&reference
.sub_path
@@ -462,15 +461,28 @@ pub fn node_resolve_binary_export(
bin_name: Option<&str>,
npm_resolver: &NpmPackageResolver,
) -> Result<NodeResolution, AnyError> {
- let pkg = npm_resolver.resolve_package_from_deno_module(pkg_req)?;
- let package_folder = pkg.folder_path;
+ fn get_package_display_name(package_json: &PackageJson) -> String {
+ package_json
+ .name
+ .as_ref()
+ .and_then(|name| {
+ package_json
+ .version
+ .as_ref()
+ .map(|version| format!("{}@{}", name, version))
+ })
+ .unwrap_or_else(|| format!("{}", package_json.path.display()))
+ }
+
+ let package_folder =
+ npm_resolver.resolve_package_folder_from_deno_module(pkg_req)?;
let package_json_path = package_folder.join("package.json");
let package_json = PackageJson::load(npm_resolver, package_json_path)?;
let bin = match &package_json.bin {
Some(bin) => bin,
None => bail!(
"package {} did not have a 'bin' property in its package.json",
- pkg.id
+ get_package_display_name(&package_json),
),
};
let bin_entry = match bin {
@@ -490,13 +502,13 @@ pub fn node_resolve_binary_export(
o.get(&pkg_req.name)
}
},
- _ => bail!("package {} did not have a 'bin' property with a string or object value in its package.json", pkg.id),
+ _ => bail!("package {} did not have a 'bin' property with a string or object value in its package.json", get_package_display_name(&package_json)),
};
let bin_entry = match bin_entry {
Some(e) => e,
None => bail!(
"package {} did not have a 'bin' entry for {} in its package.json",
- pkg.id,
+ get_package_display_name(&package_json),
bin_name.unwrap_or(&pkg_req.name),
),
};
@@ -504,7 +516,7 @@ pub fn node_resolve_binary_export(
Value::String(s) => s,
_ => bail!(
"package {} had a non-string sub property of 'bin' in its package.json",
- pkg.id
+ get_package_display_name(&package_json),
),
};