docs(core): add exec doc (#21046)
Co-authored-by: Isaac Mann <isaacplmann@gmail.com>
This commit is contained in:
parent
8ac54d8bea
commit
40cbae2fae
@ -5,16 +5,70 @@ description: 'Executes any command as if it was a target on the project'
|
|||||||
|
|
||||||
# exec
|
# exec
|
||||||
|
|
||||||
Executes any command as if it was a target on the project
|
- Executes any command as if it was a target on the project
|
||||||
|
- Executes an arbitrary command in each package
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
```shell
|
In package.json, adding a script with `nx exec` will run the command as if it is a target that project:
|
||||||
nx exec
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "myorg",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"scripts": {
|
||||||
|
"build": "nx exec -- <command> [..args]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
It will run the command for `myorg`.
|
||||||
|
|
||||||
|
When run from the terminal, `nx exec` will run the command for all projects in the workspace:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- <command> [..args] # runs the command in all projects
|
||||||
|
nx exec -- tsc
|
||||||
|
nx exec -- echo \$NX_PROJECT_NAME
|
||||||
|
nx exec -- echo \$NX_PROJECT_ROOT_PATH
|
||||||
```
|
```
|
||||||
|
|
||||||
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
|
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 wrap your command with `nx exec`.
|
||||||
|
|
||||||
|
For example, you can run `npm run docs` as a Nx target for `myorg`:
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"name": "myorg",
|
||||||
|
"nx": {},
|
||||||
|
"scripts": {
|
||||||
|
"docs": "nx exec -- node ./scripts/some-script.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You may also run a script located in the project directory for all projects:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- node ./scripts/some-script.js
|
||||||
|
```
|
||||||
|
|
||||||
|
The name of the current project is available through the environment variable $NX_PROJECT_NAME:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- echo \$NX_PROJECT_NAME
|
||||||
|
```
|
||||||
|
|
||||||
|
The location of current project is available through the environment variable $NX_PROJECT_ROOT_PATH:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- echo \$NX_PROJECT_ROOT_PATH
|
||||||
|
```
|
||||||
|
|
||||||
## Options
|
## Options
|
||||||
|
|
||||||
### all
|
### all
|
||||||
|
|||||||
@ -5,16 +5,70 @@ description: 'Executes any command as if it was a target on the project'
|
|||||||
|
|
||||||
# exec
|
# exec
|
||||||
|
|
||||||
Executes any command as if it was a target on the project
|
- Executes any command as if it was a target on the project
|
||||||
|
- Executes an arbitrary command in each package
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
```shell
|
In package.json, adding a script with `nx exec` will run the command as if it is a target that project:
|
||||||
nx exec
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "myorg",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"scripts": {
|
||||||
|
"build": "nx exec -- <command> [..args]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
It will run the command for `myorg`.
|
||||||
|
|
||||||
|
When run from the terminal, `nx exec` will run the command for all projects in the workspace:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- <command> [..args] # runs the command in all projects
|
||||||
|
nx exec -- tsc
|
||||||
|
nx exec -- echo \$NX_PROJECT_NAME
|
||||||
|
nx exec -- echo \$NX_PROJECT_ROOT_PATH
|
||||||
```
|
```
|
||||||
|
|
||||||
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
|
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 wrap your command with `nx exec`.
|
||||||
|
|
||||||
|
For example, you can run `npm run docs` as a Nx target for `myorg`:
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"name": "myorg",
|
||||||
|
"nx": {},
|
||||||
|
"scripts": {
|
||||||
|
"docs": "nx exec -- node ./scripts/some-script.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You may also run a script located in the project directory for all projects:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- node ./scripts/some-script.js
|
||||||
|
```
|
||||||
|
|
||||||
|
The name of the current project is available through the environment variable $NX_PROJECT_NAME:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- echo \$NX_PROJECT_NAME
|
||||||
|
```
|
||||||
|
|
||||||
|
The location of current project is available through the environment variable $NX_PROJECT_ROOT_PATH:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- echo \$NX_PROJECT_ROOT_PATH
|
||||||
|
```
|
||||||
|
|
||||||
## Options
|
## Options
|
||||||
|
|
||||||
### all
|
### all
|
||||||
|
|||||||
152
docs/shared/cli/exec.md
Normal file
152
docs/shared/cli/exec.md
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
---
|
||||||
|
title: 'exec - CLI command'
|
||||||
|
description: 'Executes any command as if it was a target on the project'
|
||||||
|
---
|
||||||
|
|
||||||
|
# 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 that project:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "myorg",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"scripts": {
|
||||||
|
"build": "nx exec -- <command> [..args]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
It will run the command for `myorg`.
|
||||||
|
|
||||||
|
When run from the terminal, `nx exec` will run the command for all projects in the workspace:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- <command> [..args] # runs the command in all projects
|
||||||
|
nx exec -- tsc
|
||||||
|
nx exec -- echo \$NX_PROJECT_NAME
|
||||||
|
nx exec -- echo \$NX_PROJECT_ROOT_PATH
|
||||||
|
```
|
||||||
|
|
||||||
|
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 wrap your command with `nx exec`.
|
||||||
|
|
||||||
|
For example, you can run `npm run docs` as a Nx target for `myorg`:
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"name": "myorg",
|
||||||
|
"nx": {},
|
||||||
|
"scripts": {
|
||||||
|
"docs": "nx exec -- node ./scripts/some-script.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You may also run a script located in the project directory for all projects:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- node ./scripts/some-script.js
|
||||||
|
```
|
||||||
|
|
||||||
|
The name of the current project is available through the environment variable $NX_PROJECT_NAME:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- echo \$NX_PROJECT_NAME
|
||||||
|
```
|
||||||
|
|
||||||
|
The location of current project is available through the environment variable $NX_PROJECT_ROOT_PATH:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx exec -- echo \$NX_PROJECT_ROOT_PATH
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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
|
||||||
@ -17,7 +17,7 @@ import {
|
|||||||
|
|
||||||
const importFresh = require('import-fresh');
|
const importFresh = require('import-fresh');
|
||||||
|
|
||||||
const sharedCommands = ['generate', 'run'];
|
const sharedCommands = ['generate', 'run', 'exec'];
|
||||||
|
|
||||||
export async function generateCliDocumentation(
|
export async function generateCliDocumentation(
|
||||||
commandsOutputDirectory: string
|
commandsOutputDirectory: string
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user