mirror of
https://github.com/denoland/deno.git
synced 2024-12-21 23:04:45 -05:00
fix(info): error instead of panic for npm specifiers when using byonm (#25947)
This commit is contained in:
parent
c5c1869992
commit
d7b787792c
6 changed files with 30 additions and 4 deletions
|
@ -1144,10 +1144,6 @@ impl CliOptions {
|
|||
DenoSubcommand::Run(run_flags) => {
|
||||
if run_flags.is_stdin() {
|
||||
resolve_url_or_path("./$deno$stdin.ts", self.initial_cwd())?
|
||||
} else if NpmPackageReqReference::from_str(&run_flags.script)
|
||||
.is_ok()
|
||||
{
|
||||
ModuleSpecifier::parse(&run_flags.script)?
|
||||
} else {
|
||||
resolve_url_or_path(&run_flags.script, self.initial_cwd())?
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ use crate::tools::check::TypeChecker;
|
|||
use crate::util::file_watcher::WatcherCommunicator;
|
||||
use crate::util::fs::canonicalize_path;
|
||||
use deno_config::workspace::JsrPackageConfig;
|
||||
use deno_core::anyhow::bail;
|
||||
use deno_graph::source::LoaderChecksum;
|
||||
use deno_graph::FillFromLockfileOptions;
|
||||
use deno_graph::JsrLoadError;
|
||||
|
@ -593,6 +594,12 @@ impl ModuleGraphBuilder {
|
|||
let initial_package_deps_len = graph.packages.package_deps_sum();
|
||||
let initial_package_mappings_len = graph.packages.mappings().len();
|
||||
|
||||
if roots.iter().any(|r| r.scheme() == "npm")
|
||||
&& self.npm_resolver.as_byonm().is_some()
|
||||
{
|
||||
bail!("Resolving npm specifier entrypoints this way is currently not supported with \"nodeModules\": \"manual\". In the meantime, try with --node-modules-dir=auto instead");
|
||||
}
|
||||
|
||||
graph.build(roots, loader, options).await;
|
||||
|
||||
let has_redirects_changed = graph.redirects.len() != initial_redirects_len;
|
||||
|
|
11
tests/specs/info/byonm/__test__.jsonc
Normal file
11
tests/specs/info/byonm/__test__.jsonc
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"tempDir": true,
|
||||
"steps": [{
|
||||
"args": "install",
|
||||
"output": "[WILDCARD]"
|
||||
}, {
|
||||
"args": "info npm:@denotest/add",
|
||||
"output": "info.out",
|
||||
"exitCode": 1
|
||||
}]
|
||||
}
|
6
tests/specs/info/byonm/deno.json
Normal file
6
tests/specs/info/byonm/deno.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"nodeModulesDir": "manual",
|
||||
"imports": {
|
||||
"chalk": "npm:@denotest/add"
|
||||
}
|
||||
}
|
1
tests/specs/info/byonm/info.out
Normal file
1
tests/specs/info/byonm/info.out
Normal file
|
@ -0,0 +1 @@
|
|||
error: Resolving npm specifier entrypoints this way is currently not supported with "nodeModules": "manual". In the meantime, try with --node-modules-dir=auto instead
|
5
tests/specs/info/byonm/package.json
Normal file
5
tests/specs/info/byonm/package.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"@denotest/add": "*"
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue