docs(core): add exec doc (#21046)

Co-authored-by: Isaac Mann <isaacplmann@gmail.com>
This commit is contained in:
Emily Xiong 2024-01-09 10:34:04 -05:00 committed by GitHub
parent 8ac54d8bea
commit 40cbae2fae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 267 additions and 7 deletions

View File

@ -5,16 +5,70 @@ 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 any command as if it was a target on the project
- Executes an arbitrary command in each package
## Usage
```shell
nx exec
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

View File

@ -5,16 +5,70 @@ 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 any command as if it was a target on the project
- Executes an arbitrary command in each package
## Usage
```shell
nx exec
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

152
docs/shared/cli/exec.md Normal file
View 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

View File

@ -17,7 +17,7 @@ import {
const importFresh = require('import-fresh');
const sharedCommands = ['generate', 'run'];
const sharedCommands = ['generate', 'run', 'exec'];
export async function generateCliDocumentation(
commandsOutputDirectory: string