npm-recursive-runner
v1.0.2
Published
Run npm commands recursively across multiple package.json directories with parallel execution support
Maintainers
Readme
npm-recursive-runner
A powerful utility to recursively run npm commands in any child directory that has a package.json file. Formerly known as npm-recursive-install, this enhanced version allows you to run any command (not just npm install), with support for parallel execution.
Features
- Run any npm command recursively across all package.json directories
- Skip node_modules and other specified directories
- Parallel execution with configurable concurrency
- Production mode support for install commands
- Customizable directory filtering
Installation
npm install npm-recursive-runner --save-devOptions
--command <command>: Specify the command to run in each directory (default:npm install)--production: When using install commands, add the--productionflag to skip dev dependencies--parallel: Run commands in parallel for faster execution--concurrency <number>: Set the maximum number of concurrent processes (default: 4)--rootDir <directory>: Specify the root directory to start searching for package.json files--skipRoot: Skip execution for the root package.json--skip <directories>: Skip execution for specific directories--includeDirectories <directories>: Add specific directories for command execution
Usage Examples
Basic Usage
Run npm install in all package.json directories:
$ npm-recursive-runnerRun Custom Commands
Run npm ci instead of npm install:
$ npm-recursive-runner --command="npm ci"Run a build script in all packages:
$ npm-recursive-runner --command="npm run build"Clean node_modules directories:
$ npm-recursive-runner --command="rm -rf node_modules"Parallel Execution
Run installations in parallel (4 concurrent processes by default):
$ npm-recursive-runner --parallelRun with custom concurrency level:
$ npm-recursive-runner --parallel --concurrency=8Filtering Directories
Skip specific directories:
$ npm-recursive-runner --skip dist buildStart from a specific directory:
$ npm-recursive-runner --rootDir=packagesSkip root directory but process all others:
$ npm-recursive-runner --skipRootInclude specific directories:
$ npm-recursive-runner --skip dist --includeDirectories dist/special-packageProduction Mode
Install dependencies without dev dependencies:
$ npm-recursive-runner --productionCombining Options
Run a clean script in parallel across all packages except test packages:
$ npm-recursive-runner --command="npm run clean" --parallel --skip test-*Origin & Contributors
This package is an enhanced version of npm-recursive-install originally created by Matt Green, extended with support for custom commands and parallel execution.
Contributors
- [Avi Weiss] - Added custom command support and parallel execution
- Matt Green - Creator of the original npm-recursive-install
License
MIT
