mirror of
https://github.com/denoland/deno.git
synced 2024-12-24 08:09:08 -05:00
fix(npm): support cjs entrypoint in node_modules folder (#21224)
Closes #21109
This commit is contained in:
parent
b572abfcb3
commit
ceca097e6f
3 changed files with 26 additions and 3 deletions
|
@ -2653,3 +2653,24 @@ pub fn different_nested_dep_byonm() {
|
||||||
.run();
|
.run();
|
||||||
output.assert_matches_file("npm/different_nested_dep/main.out");
|
output.assert_matches_file("npm/different_nested_dep/main.out");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn run_cjs_in_node_modules_folder() {
|
||||||
|
let test_context = TestContextBuilder::for_npm().use_temp_cwd().build();
|
||||||
|
let temp_dir = test_context.temp_dir();
|
||||||
|
temp_dir.write("package.json", "{}");
|
||||||
|
temp_dir.write("deno.json", r#"{ "unstable": ["byonm"] }"#);
|
||||||
|
let pkg_dir = temp_dir.path().join("node_modules/package");
|
||||||
|
pkg_dir.create_dir_all();
|
||||||
|
pkg_dir
|
||||||
|
.join("package.json")
|
||||||
|
.write(r#"{ "name": "package" }"#);
|
||||||
|
pkg_dir
|
||||||
|
.join("main.js")
|
||||||
|
.write("console.log('hi'); module.exports = 'hi';");
|
||||||
|
test_context
|
||||||
|
.new_command()
|
||||||
|
.args("run node_modules/package/main.js")
|
||||||
|
.run()
|
||||||
|
.assert_matches_text("hi\n");
|
||||||
|
}
|
||||||
|
|
|
@ -45,8 +45,8 @@ To grant permissions, set them before the script argument. For example:
|
||||||
let http_client = factory.http_client();
|
let http_client = factory.http_client();
|
||||||
let cli_options = factory.cli_options();
|
let cli_options = factory.cli_options();
|
||||||
|
|
||||||
// Run a background task that checks for available upgrades. If an earlier
|
// Run a background task that checks for available upgrades or output
|
||||||
// run of this background task found a new version of Deno.
|
// if an earlier run of this background task found a new version of Deno.
|
||||||
super::upgrade::check_for_upgrades(
|
super::upgrade::check_for_upgrades(
|
||||||
http_client.clone(),
|
http_client.clone(),
|
||||||
deno_dir.upgrade_check_file_path(),
|
deno_dir.upgrade_check_file_path(),
|
||||||
|
|
|
@ -495,7 +495,9 @@ impl CliMainWorkerFactory {
|
||||||
}
|
}
|
||||||
|
|
||||||
(node_resolution.into_url(), is_main_cjs)
|
(node_resolution.into_url(), is_main_cjs)
|
||||||
} else if shared.options.is_npm_main {
|
} else if shared.options.is_npm_main
|
||||||
|
|| shared.node_resolver.in_npm_package(&main_module)
|
||||||
|
{
|
||||||
let node_resolution =
|
let node_resolution =
|
||||||
shared.node_resolver.url_to_node_resolution(main_module)?;
|
shared.node_resolver.url_to_node_resolution(main_module)?;
|
||||||
let is_main_cjs = matches!(node_resolution, NodeResolution::CommonJs(_));
|
let is_main_cjs = matches!(node_resolution, NodeResolution::CommonJs(_));
|
||||||
|
|
Loading…
Reference in a new issue