fix(core): prevent graph output from being truncated (#23446)
<!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> ## Current Behavior --graph stdout and --file stdout aren't documented. When printing graph to stdout, its possible for some output to get missed. ## Expected Behavior Existing flags are documented, and `--print` is more discoverable. We await stdout finishing before exiting the program. ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes #18689
This commit is contained in:
parent
1e7cd7e9e6
commit
a308e1dc6b
@ -59,12 +59,30 @@ Run build for only projects with the tag `dotnet`:
|
||||
nx affected -t=build --exclude='*,!tag:dotnet'
|
||||
```
|
||||
|
||||
Use the currently executing project name in your command.:
|
||||
Use the currently executing project name in your command:
|
||||
|
||||
```shell
|
||||
nx affected -t build --tag=$NX_TASK_TARGET_PROJECT:latest
|
||||
```
|
||||
|
||||
Preview the task graph that Nx would run inside a webview:
|
||||
|
||||
```shell
|
||||
nx affected -t=build --graph
|
||||
```
|
||||
|
||||
Save the task graph to a file:
|
||||
|
||||
```shell
|
||||
nx affected -t=build --graph=output.json
|
||||
```
|
||||
|
||||
Print the task graph to the console:
|
||||
|
||||
```shell
|
||||
nx affected -t=build --graph=stdout
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### ~~all~~
|
||||
@ -109,7 +127,7 @@ Change the way Nx is calculating the affected command by providing directly chan
|
||||
|
||||
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.
|
||||
Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. Pass "stdout" to print the results to the terminal.
|
||||
|
||||
### head
|
||||
|
||||
|
||||
@ -35,6 +35,12 @@ Generate a static website with project graph into an html file, accompanied by a
|
||||
nx graph --file=output.html
|
||||
```
|
||||
|
||||
Print the project graph as JSON to the console:
|
||||
|
||||
```shell
|
||||
nx graph --print
|
||||
```
|
||||
|
||||
Show the graph where every node is either an ancestor or a descendant of todos-feature-main:
|
||||
|
||||
```shell
|
||||
@ -89,7 +95,7 @@ Exclude certain projects from being processed
|
||||
|
||||
Type: `string`
|
||||
|
||||
Output file (e.g. --file=output.json or --file=dep-graph.html)
|
||||
Output file (e.g. --file=output.json or --file=dep-graph.html).
|
||||
|
||||
### files
|
||||
|
||||
@ -141,6 +147,12 @@ Type: `number`
|
||||
|
||||
Bind the project graph server to a specific port.
|
||||
|
||||
### print
|
||||
|
||||
Type: `boolean`
|
||||
|
||||
Print the project graph to stdout in the terminal.
|
||||
|
||||
### targets
|
||||
|
||||
Type: `string`
|
||||
|
||||
@ -301,7 +301,7 @@ Exclude certain projects from being processed
|
||||
|
||||
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.
|
||||
Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. Pass "stdout" to print the results to the terminal.
|
||||
|
||||
##### help
|
||||
|
||||
|
||||
@ -71,6 +71,24 @@ Run lint, test, and build targets for all projects. Requires Nx v15.4+:
|
||||
nx run-many --targets=lint,test,build
|
||||
```
|
||||
|
||||
Preview the task graph that Nx would run inside a webview:
|
||||
|
||||
```shell
|
||||
nx run-many -t=build --graph
|
||||
```
|
||||
|
||||
Save the task graph to a file:
|
||||
|
||||
```shell
|
||||
nx run-many -t=build --graph=output.json
|
||||
```
|
||||
|
||||
Print the task graph to the console:
|
||||
|
||||
```shell
|
||||
nx run-many -t=build --graph=stdout
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### all
|
||||
@ -105,7 +123,7 @@ Exclude certain projects from being processed
|
||||
|
||||
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.
|
||||
Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. Pass "stdout" to print the results to the terminal.
|
||||
|
||||
### help
|
||||
|
||||
|
||||
@ -1,44 +1,163 @@
|
||||
---
|
||||
title: 'run - CLI command'
|
||||
description: 'Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file.'
|
||||
description: 'Run a target for a project
|
||||
(e.g., nx run myapp:serve:production).
|
||||
|
||||
You can also use the infix notation to run a target:
|
||||
(e.g., nx serve myapp --configuration=production)
|
||||
|
||||
You can skip the use of Nx cache by using the --skip-nx-cache option.'
|
||||
---
|
||||
|
||||
# run
|
||||
|
||||
Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file.
|
||||
Run a target for a project
|
||||
(e.g., nx run myapp:serve:production).
|
||||
|
||||
You can also use the infix notation to run a target:
|
||||
(e.g., nx serve myapp --configuration=production)
|
||||
|
||||
You can skip the use of Nx cache by using the --skip-nx-cache option.
|
||||
|
||||
## Usage
|
||||
|
||||
```shell
|
||||
nx run <target> [options]
|
||||
nx run [project][:target][:configuration] [_..]
|
||||
```
|
||||
|
||||
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpx nx`.
|
||||
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
|
||||
|
||||
### Examples
|
||||
|
||||
Run the `build` target for the `myapp` :
|
||||
Run the target build for the myapp project:
|
||||
|
||||
```shell
|
||||
nx run myapp:build
|
||||
nx run myapp:build
|
||||
```
|
||||
|
||||
Run the `build` target for the `myapp` project with a `production` configuration:
|
||||
Run the target build for the myapp project, with production configuration:
|
||||
|
||||
```shell
|
||||
nx run myapp:build:production
|
||||
nx run myapp:build:production
|
||||
```
|
||||
|
||||
Preview the task graph that Nx would run inside a webview:
|
||||
|
||||
```shell
|
||||
nx run myapp:build --graph
|
||||
```
|
||||
|
||||
Save the task graph to a file:
|
||||
|
||||
```shell
|
||||
nx run myapp:build --graph=output.json
|
||||
```
|
||||
|
||||
Print the task graph to the console:
|
||||
|
||||
```shell
|
||||
nx run myapp:build --graph=stdout
|
||||
```
|
||||
|
||||
Run's a target named build:test for the myapp project. Note the quotes around the target name to prevent "test" from being considered a configuration:
|
||||
|
||||
```shell
|
||||
nx run myapp:"build:test"
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### configuration (-c)
|
||||
### batch
|
||||
|
||||
A named builder configuration, defined in the "configurations" section of the workspace configuration file. The builder uses the named configuration to run the given target.
|
||||
Type: `boolean`
|
||||
|
||||
### help
|
||||
Default: `false`
|
||||
|
||||
Show help
|
||||
Run task(s) in batches for executors which support batches
|
||||
|
||||
### configuration
|
||||
|
||||
Type: `string`
|
||||
|
||||
This is the configuration to use when performing tasks on projects
|
||||
|
||||
### 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. Pass "stdout" to print the results to the terminal.
|
||||
|
||||
### nxBail
|
||||
|
||||
Type: `boolean`
|
||||
|
||||
Default: `false`
|
||||
|
||||
Stop command execution after the first failed task
|
||||
|
||||
### nxIgnoreCycles
|
||||
|
||||
Type: `boolean`
|
||||
|
||||
Default: `false`
|
||||
|
||||
Ignore cycles in the task graph
|
||||
|
||||
### output-style
|
||||
|
||||
Type: `string`
|
||||
|
||||
Choices: [dynamic, static, stream, stream-without-prefixes, compact]
|
||||
|
||||
Defines how Nx emits outputs tasks logs
|
||||
|
||||
| option | description |
|
||||
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| dynamic | use dynamic output life cycle, previous content is overwritten or modified as new outputs are added, display minimal logs by default, always show errors. This output format is recommended on your local development environments. |
|
||||
| static | uses static output life cycle, no previous content is rewritten or modified as new outputs are added. This output format is recommened for CI environments. |
|
||||
| stream | nx by default logs output to an internal output stream, enable this option to stream logs to stdout / stderr |
|
||||
| stream-without-prefixes | nx prefixes the project name the target is running on, use this option remove the project name prefix from output |
|
||||
|
||||
### parallel
|
||||
|
||||
Type: `string`
|
||||
|
||||
Max number of parallel processes [default is 3]
|
||||
|
||||
### project
|
||||
|
||||
Type: `string`
|
||||
|
||||
Target project
|
||||
|
||||
### 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
|
||||
|
||||
@ -23,7 +23,7 @@ Show all projects in the workspace:
|
||||
nx show projects
|
||||
```
|
||||
|
||||
Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many.:
|
||||
Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many:
|
||||
|
||||
```shell
|
||||
nx show projects --projects api-*
|
||||
@ -53,19 +53,19 @@ Show affected projects in the workspace, excluding end-to-end projects:
|
||||
nx show projects --affected --exclude=*-e2e
|
||||
```
|
||||
|
||||
If in an interactive terminal, opens the project detail view. If not in an interactive terminal, defaults to JSON.:
|
||||
If in an interactive terminal, opens the project detail view. If not in an interactive terminal, defaults to JSON:
|
||||
|
||||
```shell
|
||||
nx show project my-app
|
||||
```
|
||||
|
||||
Show detailed information about "my-app" in a json format.:
|
||||
Show detailed information about "my-app" in a json format:
|
||||
|
||||
```shell
|
||||
nx show project my-app --json
|
||||
```
|
||||
|
||||
Show information about "my-app" in a human readable format.:
|
||||
Show information about "my-app" in a human readable format:
|
||||
|
||||
```shell
|
||||
nx show project my-app --json false
|
||||
|
||||
@ -59,12 +59,30 @@ Run build for only projects with the tag `dotnet`:
|
||||
nx affected -t=build --exclude='*,!tag:dotnet'
|
||||
```
|
||||
|
||||
Use the currently executing project name in your command.:
|
||||
Use the currently executing project name in your command:
|
||||
|
||||
```shell
|
||||
nx affected -t build --tag=$NX_TASK_TARGET_PROJECT:latest
|
||||
```
|
||||
|
||||
Preview the task graph that Nx would run inside a webview:
|
||||
|
||||
```shell
|
||||
nx affected -t=build --graph
|
||||
```
|
||||
|
||||
Save the task graph to a file:
|
||||
|
||||
```shell
|
||||
nx affected -t=build --graph=output.json
|
||||
```
|
||||
|
||||
Print the task graph to the console:
|
||||
|
||||
```shell
|
||||
nx affected -t=build --graph=stdout
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### ~~all~~
|
||||
@ -109,7 +127,7 @@ Change the way Nx is calculating the affected command by providing directly chan
|
||||
|
||||
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.
|
||||
Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. Pass "stdout" to print the results to the terminal.
|
||||
|
||||
### head
|
||||
|
||||
|
||||
@ -35,6 +35,12 @@ Generate a static website with project graph into an html file, accompanied by a
|
||||
nx graph --file=output.html
|
||||
```
|
||||
|
||||
Print the project graph as JSON to the console:
|
||||
|
||||
```shell
|
||||
nx graph --print
|
||||
```
|
||||
|
||||
Show the graph where every node is either an ancestor or a descendant of todos-feature-main:
|
||||
|
||||
```shell
|
||||
@ -89,7 +95,7 @@ Exclude certain projects from being processed
|
||||
|
||||
Type: `string`
|
||||
|
||||
Output file (e.g. --file=output.json or --file=dep-graph.html)
|
||||
Output file (e.g. --file=output.json or --file=dep-graph.html).
|
||||
|
||||
### files
|
||||
|
||||
@ -141,6 +147,12 @@ Type: `number`
|
||||
|
||||
Bind the project graph server to a specific port.
|
||||
|
||||
### print
|
||||
|
||||
Type: `boolean`
|
||||
|
||||
Print the project graph to stdout in the terminal.
|
||||
|
||||
### targets
|
||||
|
||||
Type: `string`
|
||||
|
||||
@ -301,7 +301,7 @@ Exclude certain projects from being processed
|
||||
|
||||
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.
|
||||
Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. Pass "stdout" to print the results to the terminal.
|
||||
|
||||
##### help
|
||||
|
||||
|
||||
@ -71,6 +71,24 @@ Run lint, test, and build targets for all projects. Requires Nx v15.4+:
|
||||
nx run-many --targets=lint,test,build
|
||||
```
|
||||
|
||||
Preview the task graph that Nx would run inside a webview:
|
||||
|
||||
```shell
|
||||
nx run-many -t=build --graph
|
||||
```
|
||||
|
||||
Save the task graph to a file:
|
||||
|
||||
```shell
|
||||
nx run-many -t=build --graph=output.json
|
||||
```
|
||||
|
||||
Print the task graph to the console:
|
||||
|
||||
```shell
|
||||
nx run-many -t=build --graph=stdout
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### all
|
||||
@ -105,7 +123,7 @@ Exclude certain projects from being processed
|
||||
|
||||
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.
|
||||
Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. Pass "stdout" to print the results to the terminal.
|
||||
|
||||
### help
|
||||
|
||||
|
||||
@ -1,44 +1,163 @@
|
||||
---
|
||||
title: 'run - CLI command'
|
||||
description: 'Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file.'
|
||||
description: 'Run a target for a project
|
||||
(e.g., nx run myapp:serve:production).
|
||||
|
||||
You can also use the infix notation to run a target:
|
||||
(e.g., nx serve myapp --configuration=production)
|
||||
|
||||
You can skip the use of Nx cache by using the --skip-nx-cache option.'
|
||||
---
|
||||
|
||||
# run
|
||||
|
||||
Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file.
|
||||
Run a target for a project
|
||||
(e.g., nx run myapp:serve:production).
|
||||
|
||||
You can also use the infix notation to run a target:
|
||||
(e.g., nx serve myapp --configuration=production)
|
||||
|
||||
You can skip the use of Nx cache by using the --skip-nx-cache option.
|
||||
|
||||
## Usage
|
||||
|
||||
```shell
|
||||
nx run <target> [options]
|
||||
nx run [project][:target][:configuration] [_..]
|
||||
```
|
||||
|
||||
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpx nx`.
|
||||
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
|
||||
|
||||
### Examples
|
||||
|
||||
Run the `build` target for the `myapp` :
|
||||
Run the target build for the myapp project:
|
||||
|
||||
```shell
|
||||
nx run myapp:build
|
||||
nx run myapp:build
|
||||
```
|
||||
|
||||
Run the `build` target for the `myapp` project with a `production` configuration:
|
||||
Run the target build for the myapp project, with production configuration:
|
||||
|
||||
```shell
|
||||
nx run myapp:build:production
|
||||
nx run myapp:build:production
|
||||
```
|
||||
|
||||
Preview the task graph that Nx would run inside a webview:
|
||||
|
||||
```shell
|
||||
nx run myapp:build --graph
|
||||
```
|
||||
|
||||
Save the task graph to a file:
|
||||
|
||||
```shell
|
||||
nx run myapp:build --graph=output.json
|
||||
```
|
||||
|
||||
Print the task graph to the console:
|
||||
|
||||
```shell
|
||||
nx run myapp:build --graph=stdout
|
||||
```
|
||||
|
||||
Run's a target named build:test for the myapp project. Note the quotes around the target name to prevent "test" from being considered a configuration:
|
||||
|
||||
```shell
|
||||
nx run myapp:"build:test"
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### configuration (-c)
|
||||
### batch
|
||||
|
||||
A named builder configuration, defined in the "configurations" section of the workspace configuration file. The builder uses the named configuration to run the given target.
|
||||
Type: `boolean`
|
||||
|
||||
### help
|
||||
Default: `false`
|
||||
|
||||
Show help
|
||||
Run task(s) in batches for executors which support batches
|
||||
|
||||
### configuration
|
||||
|
||||
Type: `string`
|
||||
|
||||
This is the configuration to use when performing tasks on projects
|
||||
|
||||
### 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. Pass "stdout" to print the results to the terminal.
|
||||
|
||||
### nxBail
|
||||
|
||||
Type: `boolean`
|
||||
|
||||
Default: `false`
|
||||
|
||||
Stop command execution after the first failed task
|
||||
|
||||
### nxIgnoreCycles
|
||||
|
||||
Type: `boolean`
|
||||
|
||||
Default: `false`
|
||||
|
||||
Ignore cycles in the task graph
|
||||
|
||||
### output-style
|
||||
|
||||
Type: `string`
|
||||
|
||||
Choices: [dynamic, static, stream, stream-without-prefixes, compact]
|
||||
|
||||
Defines how Nx emits outputs tasks logs
|
||||
|
||||
| option | description |
|
||||
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| dynamic | use dynamic output life cycle, previous content is overwritten or modified as new outputs are added, display minimal logs by default, always show errors. This output format is recommended on your local development environments. |
|
||||
| static | uses static output life cycle, no previous content is rewritten or modified as new outputs are added. This output format is recommened for CI environments. |
|
||||
| stream | nx by default logs output to an internal output stream, enable this option to stream logs to stdout / stderr |
|
||||
| stream-without-prefixes | nx prefixes the project name the target is running on, use this option remove the project name prefix from output |
|
||||
|
||||
### parallel
|
||||
|
||||
Type: `string`
|
||||
|
||||
Max number of parallel processes [default is 3]
|
||||
|
||||
### project
|
||||
|
||||
Type: `string`
|
||||
|
||||
Target project
|
||||
|
||||
### 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
|
||||
|
||||
@ -23,7 +23,7 @@ Show all projects in the workspace:
|
||||
nx show projects
|
||||
```
|
||||
|
||||
Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many.:
|
||||
Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many:
|
||||
|
||||
```shell
|
||||
nx show projects --projects api-*
|
||||
@ -53,19 +53,19 @@ Show affected projects in the workspace, excluding end-to-end projects:
|
||||
nx show projects --affected --exclude=*-e2e
|
||||
```
|
||||
|
||||
If in an interactive terminal, opens the project detail view. If not in an interactive terminal, defaults to JSON.:
|
||||
If in an interactive terminal, opens the project detail view. If not in an interactive terminal, defaults to JSON:
|
||||
|
||||
```shell
|
||||
nx show project my-app
|
||||
```
|
||||
|
||||
Show detailed information about "my-app" in a json format.:
|
||||
Show detailed information about "my-app" in a json format:
|
||||
|
||||
```shell
|
||||
nx show project my-app --json
|
||||
```
|
||||
|
||||
Show information about "my-app" in a human readable format.:
|
||||
Show information about "my-app" in a human readable format:
|
||||
|
||||
```shell
|
||||
nx show project my-app --json false
|
||||
|
||||
@ -1,44 +0,0 @@
|
||||
---
|
||||
title: 'run - CLI command'
|
||||
description: 'Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file.'
|
||||
---
|
||||
|
||||
# run
|
||||
|
||||
Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file.
|
||||
|
||||
## Usage
|
||||
|
||||
```shell
|
||||
nx run <target> [options]
|
||||
```
|
||||
|
||||
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpx nx`.
|
||||
|
||||
### Examples
|
||||
|
||||
Run the `build` target for the `myapp` :
|
||||
|
||||
```shell
|
||||
nx run myapp:build
|
||||
```
|
||||
|
||||
Run the `build` target for the `myapp` project with a `production` configuration:
|
||||
|
||||
```shell
|
||||
nx run myapp:build:production
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### configuration (-c)
|
||||
|
||||
A named builder configuration, defined in the "configurations" section of the workspace configuration file. The builder uses the named configuration to run the given target.
|
||||
|
||||
### help
|
||||
|
||||
Show help
|
||||
|
||||
### version
|
||||
|
||||
Show version number
|
||||
@ -2,9 +2,9 @@ import { CommandModule } from 'yargs';
|
||||
import { handleErrors } from '../../utils/params';
|
||||
import {
|
||||
withAffectedOptions,
|
||||
withDepGraphOptions,
|
||||
withTargetAndConfigurationOption,
|
||||
} from '../yargs-utils/shared-options';
|
||||
import { withGraphOptions } from '../graph/command-object';
|
||||
|
||||
const affectedGraphDeprecationMessage =
|
||||
'Use `nx graph --affected`, or `nx affected --graph` instead depending on which best suits your use case. The `affected:graph` command has been removed in Nx 19.';
|
||||
@ -18,7 +18,7 @@ export const yargsAffectedGraphCommand: CommandModule = {
|
||||
command: 'affected:graph',
|
||||
describe: false,
|
||||
aliases: ['affected:dep-graph'],
|
||||
builder: (yargs) => withAffectedOptions(withDepGraphOptions(yargs)),
|
||||
builder: (yargs) => withAffectedOptions(withGraphOptions(yargs)),
|
||||
handler: (args) =>
|
||||
handleErrors(false, () => {
|
||||
throw new Error(affectedGraphDeprecationMessage);
|
||||
|
||||
@ -39,7 +39,22 @@ export const examples: Record<string, Example[]> = {
|
||||
},
|
||||
{
|
||||
command: 'affected -t build --tag=$NX_TASK_TARGET_PROJECT:latest',
|
||||
description: 'Use the currently executing project name in your command.',
|
||||
description: 'Use the currently executing project name in your command',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'affected -t=build --graph',
|
||||
description: 'Preview the task graph that Nx would run inside a webview',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'affected -t=build --graph=output.json',
|
||||
description: 'Save the task graph to a file',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'affected -t=build --graph=stdout',
|
||||
description: 'Print the task graph to the console',
|
||||
},
|
||||
],
|
||||
'affected:test': [
|
||||
@ -142,6 +157,12 @@ export const examples: Record<string, Example[]> = {
|
||||
description:
|
||||
'Generate a static website with project graph into an html file, accompanied by an asset folder called static',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'graph --print',
|
||||
description: 'Print the project graph as JSON to the console',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'graph --focus=todos-feature-main',
|
||||
description:
|
||||
@ -217,6 +238,54 @@ export const examples: Record<string, Example[]> = {
|
||||
description:
|
||||
'Run lint, test, and build targets for all projects. Requires Nx v15.4+',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'run-many -t=build --graph',
|
||||
description: 'Preview the task graph that Nx would run inside a webview',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'run-many -t=build --graph=output.json',
|
||||
description: 'Save the task graph to a file',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'run-many -t=build --graph=stdout',
|
||||
description: 'Print the task graph to the console',
|
||||
},
|
||||
],
|
||||
run: [
|
||||
{
|
||||
command: 'run myapp:build',
|
||||
description: 'Run the target build for the myapp project',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'run myapp:build:production',
|
||||
description:
|
||||
'Run the target build for the myapp project, with production configuration',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'run myapp:build --graph',
|
||||
description: 'Preview the task graph that Nx would run inside a webview',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'run myapp:build --graph=output.json',
|
||||
description: 'Save the task graph to a file',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'run myapp:build --graph=stdout',
|
||||
description: 'Print the task graph to the console',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'run myapp:"build:test"',
|
||||
description:
|
||||
'Run\'s a target named build:test for the myapp project. Note the quotes around the target name to prevent "test" from being considered a configuration',
|
||||
},
|
||||
],
|
||||
migrate: [
|
||||
{
|
||||
@ -276,7 +345,7 @@ export const examples: Record<string, Example[]> = {
|
||||
{
|
||||
command: 'show projects --projects api-*',
|
||||
description:
|
||||
'Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many.',
|
||||
'Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many',
|
||||
},
|
||||
|
||||
{
|
||||
@ -303,18 +372,17 @@ export const examples: Record<string, Example[]> = {
|
||||
{
|
||||
command: 'show project my-app',
|
||||
description:
|
||||
'If in an interactive terminal, opens the project detail view. If not in an interactive terminal, defaults to JSON.',
|
||||
'If in an interactive terminal, opens the project detail view. If not in an interactive terminal, defaults to JSON',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'show project my-app --json',
|
||||
description: 'Show detailed information about "my-app" in a json format.',
|
||||
description: 'Show detailed information about "my-app" in a json format',
|
||||
},
|
||||
|
||||
{
|
||||
command: 'show project my-app --json false',
|
||||
description:
|
||||
'Show information about "my-app" in a human readable format.',
|
||||
description: 'Show information about "my-app" in a human readable format',
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
import { CommandModule } from 'yargs';
|
||||
import { Argv, CommandModule } from 'yargs';
|
||||
import { linkToNxDevAndExamples } from '../yargs-utils/documentation';
|
||||
import {
|
||||
parseCSV,
|
||||
withAffectedOptions,
|
||||
withDepGraphOptions,
|
||||
withVerbose,
|
||||
} from '../yargs-utils/shared-options';
|
||||
|
||||
export const yargsDepGraphCommand: CommandModule = {
|
||||
export const yargsGraphCommand: CommandModule = {
|
||||
command: 'graph',
|
||||
describe: 'Graph dependencies within workspace',
|
||||
aliases: ['dep-graph'],
|
||||
builder: (yargs) =>
|
||||
linkToNxDevAndExamples(
|
||||
withVerbose(withAffectedOptions(withDepGraphOptions(yargs))),
|
||||
withVerbose(withAffectedOptions(withGraphOptions(yargs))),
|
||||
'dep-graph'
|
||||
)
|
||||
.option('affected', {
|
||||
@ -27,3 +27,70 @@ export const yargsDepGraphCommand: CommandModule = {
|
||||
handler: async (args) =>
|
||||
await (await import('./graph')).generateGraph(args as any, []),
|
||||
};
|
||||
|
||||
export function withGraphOptions(yargs: Argv) {
|
||||
return yargs
|
||||
.option('file', {
|
||||
describe:
|
||||
'Output file (e.g. --file=output.json or --file=dep-graph.html).',
|
||||
type: 'string',
|
||||
})
|
||||
|
||||
.option('print', {
|
||||
describe: 'Print the project graph to stdout in the terminal.',
|
||||
type: 'boolean',
|
||||
})
|
||||
|
||||
.option('view', {
|
||||
describe: 'Choose whether to view the projects or task graph',
|
||||
type: 'string',
|
||||
default: 'projects',
|
||||
choices: ['projects', 'tasks'],
|
||||
})
|
||||
|
||||
.option('targets', {
|
||||
describe: 'The target to show tasks for in the task graph',
|
||||
type: 'string',
|
||||
coerce: parseCSV,
|
||||
})
|
||||
|
||||
.option('focus', {
|
||||
describe:
|
||||
'Use to show the project graph for a particular project and every node that is either an ancestor or a descendant.',
|
||||
type: 'string',
|
||||
})
|
||||
|
||||
.option('exclude', {
|
||||
describe:
|
||||
'List of projects delimited by commas to exclude from the project graph.',
|
||||
type: 'string',
|
||||
coerce: parseCSV,
|
||||
})
|
||||
|
||||
.option('groupByFolder', {
|
||||
describe: 'Group projects by folder in the project graph',
|
||||
type: 'boolean',
|
||||
})
|
||||
|
||||
.option('host', {
|
||||
describe: 'Bind the project graph server to a specific ip address.',
|
||||
type: 'string',
|
||||
})
|
||||
|
||||
.option('port', {
|
||||
describe: 'Bind the project graph server to a specific port.',
|
||||
type: 'number',
|
||||
})
|
||||
|
||||
.option('watch', {
|
||||
describe: 'Watch for changes to project graph and update in-browser',
|
||||
type: 'boolean',
|
||||
default: true,
|
||||
})
|
||||
|
||||
.option('open', {
|
||||
describe: 'Open the project graph in the browser.',
|
||||
type: 'boolean',
|
||||
default: true,
|
||||
});
|
||||
}
|
||||
|
||||
@ -349,7 +349,7 @@ export async function generateGraph(
|
||||
splitArgsIntoNxArgsAndOverrides(
|
||||
args,
|
||||
'affected',
|
||||
{ printWarnings: true },
|
||||
{ printWarnings: args.file !== 'stdout' },
|
||||
readNxJson()
|
||||
).nxArgs,
|
||||
rawGraph
|
||||
@ -401,6 +401,7 @@ export async function generateGraph(
|
||||
2
|
||||
)
|
||||
);
|
||||
await output.drain();
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import {
|
||||
yargsViewLogsCommand,
|
||||
} from './connect/command-object';
|
||||
import { yargsDaemonCommand } from './daemon/command-object';
|
||||
import { yargsDepGraphCommand } from './graph/command-object';
|
||||
import { yargsGraphCommand } from './graph/command-object';
|
||||
import { yargsExecCommand } from './exec/command-object';
|
||||
import {
|
||||
yargsFormatCheckCommand,
|
||||
@ -68,7 +68,7 @@ export const commandsObject = yargs
|
||||
.command(yargsAffectedGraphCommand)
|
||||
.command(yargsConnectCommand)
|
||||
.command(yargsDaemonCommand)
|
||||
.command(yargsDepGraphCommand)
|
||||
.command(yargsGraphCommand)
|
||||
.command(yargsExecCommand)
|
||||
.command(yargsFormatCheckCommand)
|
||||
.command(yargsFormatWriteCommand)
|
||||
|
||||
@ -52,7 +52,7 @@ export function withRunOptions<T>(yargs: Argv<T>): Argv<T & RunOptions> {
|
||||
.option('graph', {
|
||||
type: 'string',
|
||||
describe:
|
||||
'Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser.',
|
||||
'Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. Pass "stdout" to print the results to the terminal.',
|
||||
coerce: (value) =>
|
||||
// when the type of an opt is "string", passing `--opt` comes through as having an empty string value.
|
||||
// this coercion allows `--graph` to be passed through as a boolean directly, and also normalizes the
|
||||
@ -273,60 +273,6 @@ export function withOutputStyleOption(
|
||||
});
|
||||
}
|
||||
|
||||
export function withDepGraphOptions(yargs: Argv) {
|
||||
return yargs
|
||||
.option('file', {
|
||||
describe:
|
||||
'Output file (e.g. --file=output.json or --file=dep-graph.html)',
|
||||
type: 'string',
|
||||
})
|
||||
.option('view', {
|
||||
describe: 'Choose whether to view the projects or task graph',
|
||||
type: 'string',
|
||||
default: 'projects',
|
||||
choices: ['projects', 'tasks'],
|
||||
})
|
||||
.option('targets', {
|
||||
describe: 'The target to show tasks for in the task graph',
|
||||
type: 'string',
|
||||
coerce: parseCSV,
|
||||
})
|
||||
.option('focus', {
|
||||
describe:
|
||||
'Use to show the project graph for a particular project and every node that is either an ancestor or a descendant.',
|
||||
type: 'string',
|
||||
})
|
||||
.option('exclude', {
|
||||
describe:
|
||||
'List of projects delimited by commas to exclude from the project graph.',
|
||||
type: 'string',
|
||||
coerce: parseCSV,
|
||||
})
|
||||
|
||||
.option('groupByFolder', {
|
||||
describe: 'Group projects by folder in the project graph',
|
||||
type: 'boolean',
|
||||
})
|
||||
.option('host', {
|
||||
describe: 'Bind the project graph server to a specific ip address.',
|
||||
type: 'string',
|
||||
})
|
||||
.option('port', {
|
||||
describe: 'Bind the project graph server to a specific port.',
|
||||
type: 'number',
|
||||
})
|
||||
.option('watch', {
|
||||
describe: 'Watch for changes to project graph and update in-browser',
|
||||
type: 'boolean',
|
||||
default: true,
|
||||
})
|
||||
.option('open', {
|
||||
describe: 'Open the project graph in the browser.',
|
||||
type: 'boolean',
|
||||
default: true,
|
||||
});
|
||||
}
|
||||
|
||||
export function withRunOneOptions(yargs: Argv) {
|
||||
const executorShouldShowHelp = !(
|
||||
process.argv[2] === 'run' && process.argv[3] === '--help'
|
||||
|
||||
@ -17,7 +17,10 @@ import {
|
||||
|
||||
const importFresh = require('import-fresh');
|
||||
|
||||
const sharedCommands = ['generate', 'run', 'exec'];
|
||||
// Docs for these commands are inside docs/shared/cli - they are not dynamically generated.
|
||||
const sharedCommands = ['generate', 'exec'];
|
||||
|
||||
// These commands are hidden from the documentation.
|
||||
const hiddenCommands = ['$0'];
|
||||
|
||||
export async function generateCliDocumentation(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user