nx/docs/generated/devkit/ExecutorContext.md
Jason Jean 23bebd91e7
feat(devkit): bump compatibility to Nx 19 - 21.x (#28243)
BREAKING CHANGE

<!-- 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` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

* `@nx/devkit` supports Nx 17 - 20.
* Node 18 - 22 is supported 
* `ExecutorContext.projectGraph`, `ExecutorContext.nxJsonConfiguration`,
and `ExecutorContext.projectsConfigurations` is marked as optional
because `ExecutorContext` in some versions of Nx did not have them.
* `ExecutorContext.workspace` is marked as optional because
`ExecutorContext` in some versions of Nx did not have the above
properties which contain the same information.
* `ProjectGraphNode` is deprecated.
* `NxPluginV1.processProjectGraph` was deprecated long ago and there has
been a warning since.
* `appRootPath` has been deprecated for a long time.
* `parseTargetString` had a variant that did not take either the project
graph or the executor context.
* `readNxJson` has a variant which does not take a tree. This was not
clearly deprecated.
* There are handlers to require from `@nx/` instead of `@nrwl`
* Nx tries to get a root install from `@nrwl/cli`


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

* `@nx/devkit` supports Nx 19 - 21.
* Node 20 - 22 is supported 
* `ExecutorContext.projectGraph`, `ExecutorContext.nxJsonConfiguration`,
and `ExecutorContext.projectsConfigurations` is marked as required
because `ExecutorContext` in Nx 19+ is guaranteed to have them.
* `ExecutorContext.workspace` is removed because the same information is
available in the above properties
* `ProjectGraphNode` is removed.
* `NxPluginV1` is no more. All plugins should be `NxPluginV2`.
* `workspaceRoot` is the replacement for `appRootPath`. `appRootPath` is
removed.
* `parseTargetString` no longer has a variant that did not take either
the project graph or the executor context.
* `readNxJson` still has a variant which does not take a tree but it's
clearly deprecated to be removed in Nx 21.
* `@nrwl` packages are no more so we don't have to redirect requires
anymore.
* `@nrwl/cli` is no more so Nx shouldn't try to get a root install there
* 

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-10-03 17:35:47 -04:00

110 lines
2.4 KiB
Markdown

# Interface: ExecutorContext
Context that is passed into an executor
## Table of contents
### Properties
- [configurationName](../../devkit/documents/ExecutorContext#configurationname): string
- [cwd](../../devkit/documents/ExecutorContext#cwd): string
- [isVerbose](../../devkit/documents/ExecutorContext#isverbose): boolean
- [nxJsonConfiguration](../../devkit/documents/ExecutorContext#nxjsonconfiguration): NxJsonConfiguration<string[] | "\*">
- [projectGraph](../../devkit/documents/ExecutorContext#projectgraph): ProjectGraph
- [projectName](../../devkit/documents/ExecutorContext#projectname): string
- [projectsConfigurations](../../devkit/documents/ExecutorContext#projectsconfigurations): ProjectsConfigurations
- [root](../../devkit/documents/ExecutorContext#root): string
- [target](../../devkit/documents/ExecutorContext#target): TargetConfiguration<any>
- [targetName](../../devkit/documents/ExecutorContext#targetname): string
- [taskGraph](../../devkit/documents/ExecutorContext#taskgraph): TaskGraph
## Properties
### configurationName
`Optional` **configurationName**: `string`
The name of the configuration being executed
---
### cwd
**cwd**: `string`
The current working directory
---
### isVerbose
**isVerbose**: `boolean`
Enable verbose logging
---
### nxJsonConfiguration
**nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\>
The contents of nx.json.
---
### projectGraph
**projectGraph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph)
A snapshot of the project graph as
it existed when the Nx command was kicked off
---
### projectName
`Optional` **projectName**: `string`
The name of the project being executed on
---
### projectsConfigurations
**projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations)
Projects config
---
### root
**root**: `string`
The root of the workspace
---
### target
`Optional` **target**: [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\<`any`\>
The configuration of the target being executed
---
### targetName
`Optional` **targetName**: `string`
The name of the target being executed
---
### taskGraph
`Optional` **taskGraph**: [`TaskGraph`](../../devkit/documents/TaskGraph)
A snapshot of the task graph as
it existed when the Nx command was kicked off