diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 8347a610cc..09de477998 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -568,7 +568,9 @@ impl CliOptions { let maybe_config_file = ConfigFile::discover(&flags, &initial_cwd)?; let mut maybe_package_json = None; - if let Some(config_file) = &maybe_config_file { + if flags.config_flag == ConfigFlag::Disabled || flags.no_npm { + log::debug!("package.json auto-discovery is disabled") + } else if let Some(config_file) = &maybe_config_file { let specifier = config_file.specifier.clone(); if specifier.scheme() == "file" { let maybe_stop_at = specifier @@ -582,6 +584,7 @@ impl CliOptions { } else { maybe_package_json = discover_package_json(&flags, None)?; } + let maybe_lock_file = lockfile::discover(&flags, maybe_config_file.as_ref())?; Self::new( diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index 4b7869ef69..f2d23a0616 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -2749,9 +2749,10 @@ itest!(config_not_auto_discovered_for_remote_script { http_server: true, }); -itest!(package_json_auto_discovered_for_local_script_log { +itest!(package_json_auto_discovered_for_local_script_arg { args: "run -L debug -A no_deno_json/main.ts", output: "run/with_package_json/no_deno_json/main.out", + // notice this is not in no_deno_json cwd: Some("run/with_package_json/"), // prevent creating a node_modules dir in the code directory copy_temp_dir: Some("run/with_package_json/"), @@ -2762,7 +2763,7 @@ itest!(package_json_auto_discovered_for_local_script_log { // In this case we shouldn't discover `package.json` file, because it's in a // directory that is above the directory containing `deno.json` file. itest!( - package_json_auto_discovered_for_local_script_log_with_stop { + package_json_auto_discovered_for_local_script_arg_with_stop { args: "run -L debug with_stop/some/nested/dir/main.ts", output: "run/with_package_json/with_stop/main.out", cwd: Some("run/with_package_json/"), @@ -2773,6 +2774,18 @@ itest!( } ); +itest!(package_json_not_auto_discovered_no_config { + args: "run -L debug -A --no-config noconfig.ts", + output: "run/with_package_json/no_deno_json/noconfig.out", + cwd: Some("run/with_package_json/no_deno_json/"), +}); + +itest!(package_json_not_auto_discovered_no_npm { + args: "run -L debug -A --no-npm noconfig.ts", + output: "run/with_package_json/no_deno_json/noconfig.out", + cwd: Some("run/with_package_json/no_deno_json/"), +}); + itest!( package_json_auto_discovered_node_modules_relative_package_json { args: "run -A main.js", diff --git a/cli/tests/testdata/run/with_package_json/no_deno_json/noconfig.out b/cli/tests/testdata/run/with_package_json/no_deno_json/noconfig.out new file mode 100644 index 0000000000..ee6e346de6 --- /dev/null +++ b/cli/tests/testdata/run/with_package_json/no_deno_json/noconfig.out @@ -0,0 +1,3 @@ +[WILDCARD]package.json auto-discovery is disabled +[WILDCARD] +success diff --git a/cli/tests/testdata/run/with_package_json/no_deno_json/noconfig.ts b/cli/tests/testdata/run/with_package_json/no_deno_json/noconfig.ts new file mode 100644 index 0000000000..73b348fbc2 --- /dev/null +++ b/cli/tests/testdata/run/with_package_json/no_deno_json/noconfig.ts @@ -0,0 +1,8 @@ +// ensure the cwd is this directory +const cwd = Deno.cwd(); +if (!cwd.endsWith("no_deno_json")) { + console.log(cwd); + throw "FAIL"; +} else { + console.log("success"); +}