@spryker-lerna/run v5.3.0
@lerna/run
Run an npm script in each package that contains that script
Install lerna for access to the lerna CLI.
Usage
$ lerna run <script> -- [..args] # runs npm run my-script in all packages that have it
$ lerna run test
$ lerna run build
# watch all packages and transpile on change, streaming prefixed output
$ lerna run --parallel watchRun an npm script in each package that contains that script. A double-dash (--)
is necessary to pass dashed arguments to the script execution.
Options
lerna run accepts all filter flags.
$ lerna run --scope my-component test--npm-client <client>
Must be an executable that knows how to run npm lifecycle scripts.
The default --npm-client is npm.
$ lerna run build --npm-client=yarnMay also be configured in lerna.json:
{
  "command": {
    "run": {
      "npmClient": "yarn"
    }
  }
}--stream
Stream output from child processes immediately, prefixed with the originating package name. This allows output from different packages to be interleaved.
$ lerna run watch --stream--parallel
Similar to --stream, but completely disregards concurrency and topological sorting, running a given command or script
immediately in all matching packages with prefixed streaming output. This is the preferred flag for long-running
processes such as npm run watch run over many packages.
$ lerna run watch --parallelNote: It is advised to constrain the scope of this command when using the
--parallelflag, as spawning dozens of subprocesses may be harmful to your shell's equanimity (or maximum file descriptor limit, for example). YMMV
--no-bail
# Run an npm script in all packages that contain it, ignoring non-zero (error) exit codes
$ lerna run --no-bail testBy default, lerna run will exit with an error if any script run returns a non-zero exit code.
Pass --no-bail to disable this behavior, running the script in all packages that contain it regardless of exit code.
--no-prefix
Disable package name prefixing when output is streaming (--stream or --parallel).
This option can be useful when piping results to other processes, such as editor plugins.
--profile
Profiles the script executions and produces a performance profile which can be analyzed using DevTools in a
Chromium-based browser (direct url: devtools://devtools/bundled/devtools_app.html). The profile shows a timeline of
the script executions where each execution is assigned to an open slot. The number of slots is determined by the
--concurrency option and the number of open slots is determined by --concurrency minus the number of ongoing
operations. The end result is a visualization of the parallel execution of your scripts.
The default location of the performance profile output is at the root of your project.
$ lerna run build --profileNote: Lerna will only profile when topological sorting is enabled (i.e. without
--paralleland--no-sort).
--profile-location <location>
You can provide a custom location for the performance profile output. The path provided will be resolved relative to the current working directory.
$ lerna run build --profile --profile-location=logs/profile/useNx (experimental)
Enables integration with Nx. Setting "useNx": true in lerna.json will tell Lerna to delegate
running tasks to Nx instead of using p-map and p-queue. This only works if Nx is installed and nx.json is present.
Example of nx.json:
{
  "extends": "nx/presets/npm.json",
  "tasksRunnerOptions": {
    "default": {
      "runner": "nx/tasks-runners/default",
      "options": {
        "cacheableOperations": ["build"]
      }
    }
  }
}