diff options
-rw-r--r-- | cli/main.rs | 12 | ||||
-rw-r--r-- | cli/tests/integration/npm_tests.rs | 7 | ||||
-rw-r--r-- | cli/tests/testdata/npm/deno_cache.out | 5 |
3 files changed, 24 insertions, 0 deletions
diff --git a/cli/main.rs b/cli/main.rs index 2ad5c83c0..358f12b17 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -393,6 +393,18 @@ async fn load_and_type_check( for file in files { let specifier = resolve_url_or_path(file)?; + + // TODO(bartlomieju): in the future (after all relevant deno subcommands + // have support for npm: specifiers), it would be good to unify this code + // in `ProcState::prepare_module_load`. + if let Ok(package_ref) = NpmPackageReference::from_specifier(&specifier) { + ps.npm_resolver + .add_package_reqs(vec![package_ref.req.clone()]) + .await?; + ps.prepare_node_std_graph().await?; + continue; + } + ps.prepare_module_load( vec![specifier], false, diff --git a/cli/tests/integration/npm_tests.rs b/cli/tests/integration/npm_tests.rs index de3f81674..bc19c613d 100644 --- a/cli/tests/integration/npm_tests.rs +++ b/cli/tests/integration/npm_tests.rs @@ -203,6 +203,13 @@ itest!(error_version_after_subpath { exit_code: 1, }); +itest!(deno_cache { + args: "cache --unstable --reload npm:chalk npm:mkdirp", + output: "npm/deno_cache.out", + envs: env_vars(), + http_server: true, +}); + #[test] fn parallel_downloading() { let (out, _err) = util::run_and_collect_output_with_args( diff --git a/cli/tests/testdata/npm/deno_cache.out b/cli/tests/testdata/npm/deno_cache.out new file mode 100644 index 000000000..957919df1 --- /dev/null +++ b/cli/tests/testdata/npm/deno_cache.out @@ -0,0 +1,5 @@ +Download http://localhost:4545/npm/registry/chalk +Download http://localhost:4545/npm/registry/chalk/chalk-5.0.1.tgz +Download http://localhost:4545/npm/registry/mkdirp +Download http://localhost:4545/npm/registry/chalk/chalk-5.0.1.tgz +Download http://localhost:4545/npm/registry/mkdirp/mkdirp-1.0.4.tgz |