exec

  • Executes any command as if it was a target on the project
  • Executes an arbitrary command in each package

Usage

In package.json, adding a script with nx exec will run the command as if it is a target on that project:

1{ 2 "name": "myorg", 3 "version": "0.0.1", 4 "scripts": { 5 "build": "nx exec -- <command> [..args]" 6 } 7} 8

It will run the command for myorg.

When run from the terminal, nx exec will run the command for all projects in the workspace:

1nx exec -- <command> [..args] # runs the command in all projects 2nx exec -- tsc 3nx exec -- echo \$NX_PROJECT_NAME 4nx exec -- echo \$NX_PROJECT_ROOT_PATH 5

Install nx globally to invoke the command directly using nx, or use npx nx, yarn nx, or pnpm nx.

Examples

You can use npm run <command> for a project and leverage the caching by wrapping your command with nx exec.

For example, you can run npm run docs as a Nx target for myorg:

1{ 2 "name": "myorg", 3 "nx": {}, 4 "scripts": { 5 "docs": "nx exec -- node ./scripts/some-script.js" 6 } 7} 8

You may also run a script located in the project directory for all projects:

1nx exec -- node ./scripts/some-script.js 2

The name of the current project is available through the environment variable $NX_PROJECT_NAME:

1nx exec -- echo \$NX_PROJECT_NAME 2

The location of current project is available through the environment variable $NX_PROJECT_ROOT_PATH:

1nx exec -- echo \$NX_PROJECT_ROOT_PATH 2

Options

all

Type: boolean

Default: true

[deprecated] run-many runs all targets on all projects in the workspace if no projects are provided. This option is no longer required.

exclude

Type: string

Exclude certain projects from being processed

graph

Type: string

Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser.

help

Type: boolean

Show help

nxBail

Type: boolean

Default: false

Stop command execution after the first failed task

nxIgnoreCycles

Type: boolean

Default: false

Ignore cycles in the task graph

parallel

Type: string

Max number of parallel processes [default is 3]

projects

Type: string

Projects to run. (comma/space delimited project names and/or patterns)

runner

Type: string

This is the name of the tasks runner configured in nx.json

skipNxCache

Type: boolean

Default: false

Rerun the tasks even when the results are available in the cache

verbose

Type: boolean

Prints additional information about the commands (e.g., stack traces)

version

Type: boolean

Show version number