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 #
1.0 KiB
1.0 KiB
Nx, NodeJS and TypeScript Compatibility Matrix
Below is a reference table that matches versions the latest major versions of Nx to the version TypeScript that it uses and the version of NodeJS that we tested it against.
Note: Other versions of NodeJS may still work without issue for these versions of Nx. This table outlines the version of NodeJS that we used when building and testing each particular version of Nx.
| Nx Version | Node Version | Typescript Version |
|---|---|---|
| 20.x (latest) | 22.x, 20.x | ~5.4.2 |
| 19.x (previous) | 22.x, 20.x, 18.x | ~5.4.2 |
| 18.x | 20.x, 18.x | ~5.4.2 |
| 17.x | 20.x, 18.x | ~5.1.0 |
| 16.x | 20.x, 18.x, 16.x | ~5.1.0 |
| 15.x | 18.x, 16.x, 14.x | ~5.0.0 |
| 14.x | 16.x, 14.x, 12.x | ~4.7.2 |
| 13.x | 14.x, 12.x, 10.x | ~4.6.2 |