summaryrefslogtreecommitdiff
path: root/cli/args/mod.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-05-18 18:10:44 -0400
committerGitHub <noreply@github.com>2023-05-18 18:10:44 -0400
commit680ae31db8d39866275df81301d927deae187666 (patch)
tree9273dee216fc39c8ef735c83890430b5a7548b2b /cli/args/mod.rs
parenta45f7f237be46ae20553d34441c61cb1d01398cb (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.rs7
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()