diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-05-18 18:10:44 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-18 18:10:44 -0400 |
commit | 680ae31db8d39866275df81301d927deae187666 (patch) | |
tree | 9273dee216fc39c8ef735c83890430b5a7548b2b /cli/args/mod.rs | |
parent | a45f7f237be46ae20553d34441c61cb1d01398cb (diff) |
feat(cli): add `nodeModulesDir` option to config file (#19095)
This adds an option to disable or enable using a local `node_modules`
directory as a project wide setting.
https://github.com/denoland/manual/pull/659
Closes #17930
Diffstat (limited to 'cli/args/mod.rs')
-rw-r--r-- | cli/args/mod.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 53dad9cae..fef27f464 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1184,14 +1184,17 @@ fn resolve_local_node_modules_folder( maybe_config_file: Option<&ConfigFile>, maybe_package_json: Option<&PackageJson>, ) -> Result<Option<PathBuf>, AnyError> { - let path = if flags.node_modules_dir == Some(false) { + let use_node_modules_dir = flags + .node_modules_dir + .or_else(|| maybe_config_file.and_then(|c| c.node_modules_dir())); + let path = if use_node_modules_dir == Some(false) { return Ok(None); } else if let Some(state) = &*NPM_PROCESS_STATE { return Ok(state.local_node_modules_path.as_ref().map(PathBuf::from)); } else if let Some(package_json_path) = maybe_package_json.map(|c| &c.path) { // always auto-discover the local_node_modules_folder when a package.json exists package_json_path.parent().unwrap().join("node_modules") - } else if flags.node_modules_dir.is_none() { + } else if use_node_modules_dir.is_none() { return Ok(None); } else if let Some(config_path) = maybe_config_file .as_ref() |