diff --git a/src/config.rs b/src/config.rs index 60f42b2c..dfa7e4de 100644 --- a/src/config.rs +++ b/src/config.rs @@ -28,6 +28,7 @@ lazy_static! { m.insert("vim", Step::Vim); m.insert("emacs", Step::Emacs); m.insert("gem", Step::Gem); + m.insert("node", Step::Node); m.insert("sdkman", Step::Sdkman); m.insert("remotes", Step::Remotes); m.insert("rustup", Step::Rustup); @@ -53,6 +54,8 @@ pub enum Step { Emacs, /// Don't upgrade ruby gems Gem, + /// Don't upgrade npm/composer/yarn packages + Node, /// Don't upgrade SDKMAN! and its packages Sdkman, /// Don't run remote Togprades diff --git a/src/main.rs b/src/main.rs index 6f4d8423..635db2ff 100644 --- a/src/main.rs +++ b/src/main.rs @@ -351,24 +351,26 @@ fn run() -> Result<(), Error> { )?; } - execute( - &mut report, - "NPM", - || node::run_npm_upgrade(&base_dirs, run_type), - config.no_retry(), - )?; - execute( - &mut report, - "composer", - || generic::run_composer_update(&base_dirs, run_type), - config.no_retry(), - )?; - execute( - &mut report, - "yarn", - || node::yarn_global_update(run_type), - config.no_retry(), - )?; + if config.should_run(Step::Node) { + execute( + &mut report, + "NPM", + || node::run_npm_upgrade(&base_dirs, run_type), + config.no_retry(), + )?; + execute( + &mut report, + "composer", + || generic::run_composer_update(&base_dirs, run_type), + config.no_retry(), + )?; + execute( + &mut report, + "yarn", + || node::yarn_global_update(run_type), + config.no_retry(), + )?; + } #[cfg(not(any( target_os = "freebsd",