Releases
21.0.0
21.0.0 (2025-05-05)
🚀 Features
angular: update angular-rspack to 20.7 (#30737 )
⚠️ angular: remove deprecated functionalities for v21 (#30769 )
core: introduce continuous tasks (#29750 , #29025 )
core: share continuous tasks (#29901 )
core: add the experimental Terminal UI for tasks (#30565 )
core: enable dte to execute continuous tasks (#29993 )
core: add shared status for tui (#30679 )
core: clean up unneeded continuous tasks after tasks are done (#30746 )
core: stream task output for all tasks except for direct output… (#30822 )
core: add flaky task detection to tui summary (#30835 )
core: allow executors to specify if they are continuous (#30821 )
⚠️ core: remove usage of cli
property from migration definitions (#30855 )
⚠️ core: remove deprecated readWorkspaceConfig
(#30868 )
core: add enter and q keybindings (#30786 )
⚠️ core: drop support for create nodes v1 in favor of only calling create nodes v2 (#30616 )
⚠️ core: remove legacy cache flag from nx.json (#30787 )
core: disable tui when output style is set to an incompatible style (#30873 )
⚠️ core: drop support for node versions prior to 20.19.0 (#30818 )
core: support reading NX_TUI_AUTO_EXIT env var (#30971 )
core: bump devkit support range and remove some deprecated APIs (#30840 )
core: add continuous option to targets for Detox, Expo, and React Native (#30988 )
⚠️ core: remove outputStyle=compact (#31016 )
gradle: add batch runner (#30457 )
gradle: set gradle task continuous for bootRun (#30931 )
graph: Create Migrate UI (#30734 )
graph: add undo migration option when one is pending approval (#30878 )
graph: show next steps for successful migrations (307c45542a )
graph: show next steps for successful migrations (#30934 )
java: add gradle kotlin plugin (#29464 )
js: infer continuous for watch-deps task (#29976 )
linter: add support for package based secondary entry points (#30809 , #18552 )
misc: remove generation of target defaults for atomized e2e tasks (#30730 )
misc: remove migrations prior to v19 in preparation for v21 (#30839 )
module-federation: add continuous tasks support to react rspack (#30644 )
node: generate new apps with continuous: true (#30148 )
nuxt: enable continuous tasks (#30925 )
nx-dev: add React landing page (#30612 )
nx-dev: add course preview component (4f8b407a75 )
nx-dev: tutorial landing page and improvements (#30757 )
nx-dev: add conformance rule to verify blog post cover images (5651270b33 )
react: undeprecate svgr option for Next.js apps since --turbo supports it (#30909 )
react: replace deprecated babel classProperties.loose option in .babelrc files (#30912 )
react-native: update executor and schema files for expo and react-native to be continuous (#30985 )
⚠️ release: useLegacyVersioning is false by default, migrate config (#30838 )
⚠️ release: support gitlab releases (#30802 )
remix: add continuous task support (#29905 )
⚠️ remix: remove deprecated static-serve target name from inferred targets (#30982 )
rspack: add continous inference support (#29973 )
rspack: use custom WriteIndexHtmlPlugin to handle variable interpolation (#30805 )
storybook: infer continuous tasks for storybook serve and serve-static (#30069 )
testing: add continuous tasks support for jest e2e with node (#30675 )
testing: support continuous tasks (#30632 )
⚠️ testing: remove deprecated getJestProjects
(#30844 )
⚠️ testing: remove tsConfig
option from the @nx/jest:jest
executor (#30888 )
⚠️ testing: remove tsConfig
and copyFiles
options from the @nx/cypress:cypress
executor (#30870 )
vite: infer continuous tasks for dev (#30043 )
webpack: add continuous inference support (#29974 )
webpack: set default sassImplementation to sass-embedded (#30580 )
webpack: remove isolatedConfig option for @nx/webpack:webpack (#30910 )
🩹 Fixes
check if dependencies & devDependencies exist before deleting dep (#30224 , #30222 )
angular: remove deprecated standaloneConfig from generators (#30578 )
angular: handle ssr with convert-to-rspack (#30752 )
angular: convert-to-rspack correctly migrating existing custom webpack configs (#30778 )
angular: convert-to-rspack should ensure zone.js is not treated as local file (#30966 )
core: schedule tasks and release waiting threads when continuous task is already running (#30673 )
core: improve tui exit consistency and summary (#30678 )
core: use dev tty for crossterm (#30696 )
core: only register forced shutdown when tui is enabled (#30735 )
core: improve flaky ci test (#30738 )
core: disable tui when CI=true (#30754 )
core: migrate-ui-api should always use its own migrate module (#30779 )
core: wait for exit before getting terminal output (#30816 )
core: fix issue with summary missing outputs (#30819 )
core: allow disabling output streaming with NX_STREAM_OUTPUT (#30834 )
core: add continuous to the project.json schema (#30853 )
core: ensure task environments are processed properly in dte (#30862 )
core: handle skipped tasks and trigger finished state (#30864 )
core: do not clone screen on every render loop of the TUI (#30872 )
core: error message when failing to fetch migrations is no good (#30874 )
core: quick fix to support trailing commas when reading hoisted … (#29436 )
core: properly print errors coming from js when tui is enabled (#30885 )
core: tui summary should handle in progress tasks properly (#30905 )
core: throw errors when task graph has invalid continuous tasks (#30924 )
core: kill child processes when pseudo terminal shutsdown (#30935 )
core: write keybindings with control to terminal panes in intera… (#30938 )
core: dont cache default plugins as all plugins if loading plugins fails (#30927 )
core: fix logging when directory does not exist (#30944 )
⚠️ core: respect packageManager field in package.json when detecting version (#29249 )
core: fix terminal output for non-tui (#30957 )
core: include nx version in native file cache (#30963 , #30940 , #29184 )
core: error when restoring http cache with no outputs (#30961 )
core: return results after NodeChildProcessWithNonDirectOutput has already exited (#30943 )
core: don't display fork script path in tui (#30970 )
core: prioritize --output-style flag over tui env vars (#30969 )
core: use process#kill instead of tree-kill for windows and macos (#30976 )
core: Disable the macOS job to prevent PRs from being blocked by its long runtime. (#30984 )
core: send signals when killing child process on unix (#30987 )
core: fix windows native build (#30990 )
core: run discrete tasks using batches if possible (#30991 )
core: improve tui task_list bottom section responsive design (#30993 )
core: update fork task runner so it propagates exit signals (#30998 )
core: remove unnecessary corepack defaults (#30992 )
core: skip vt100 parsing if tui disabled (#31010 )
core: tui summary should not show canceled during run-one because tasks are skipped (#31014 )
core: ensure the terminal is restored when cloud exits (#31013 )
core: Update nightly tests to work with continuous local-registry (#31007 )
core: enable E2E tests for macOS in CI workflow (#30986 )
core: reset should clear cloud light client (#31021 )
core: nx init should configure plugins for encapsulated workspaces (#31020 )
core: more tui summary updates and unit tests (#31019 )
core: exit the command with sigint if it is interrupted (#31028 )
core: Disable e2e matrix as macos is still hanging at install (#31041 )
core: tui summary should show cancelled when interrupting dev server (#31042 )
core: q should exit tui immediately if all tasks complete (#31040 )
core: improve tui selected task contrast (#31039 )
core: update ci-workflow generator package manager installation (#31018 )
core: switch to tui-term fork to support dimmed content (#31044 )
core: kill tasks run via run-commands (#31045 )
gradle: make sure v1 hash file is named differently to prevent compatability errors (#30846 )
gradle: add gradle migration to change ciTargetName (#30965 )
gradle: fix workflow to run assemble check with batch (#31022 )
graph: ensure deps from graph-client->migrate-ui exists so taliwind styles are compiled correctly (#30762 )
graph: disable primary CTA for Migrate UI when approval is required first (#30836 )
graph: make migrate ui future migration circles cleaner (#30898 )
js: remove check that ts plugin is used for ts sync generator (#30743 )
linter: remove empty entry in typescript eslint flat config (#30727 , #30725 )
⚠️ misc: only provide default value for object properties if object already has value (#28838 , #23153 )
module-federation: remove disabling runtimeChunk (#30637 , #9582 )
module-federation: check the remote project targets for buildTarget to use #30808 (#30867 , #30808 )
nx-dev: refer to the youtube video instead of storing the videos… (#30739 )
nx-dev: toc should only include headings from the article body (4dbc3c7156 )
nx-dev: update blog posts with avif cover images (d6ea3ab45f )
react: mark react-router dev/start targets as continuous (#30776 )
react: migration for babel supports configs that do not use @nx/react/babel (#30962 )
release: ensure generatorOptions and rootVersionActionsOptions are passed to updateLockfile function (#30796 )
release: ensure versionData is always populated even when no bumps (#30866 )
release: only error on missing manifestsToUpdate if a project is being directly processed (#31004 )
repo: don't cancel running jobs on master when new branch merged (#30871 )
testing: fix cypress and playwright atomized targetDefaults so they match correctly (#30717 , #28842 )
testing: use correct server process reference when killing the server in the cypress preset (#30994 )
testing: ignore test outputs from playwright when linting (#31015 )
vue: install @typescript-eslint/parser
when generating project using it (#31008 )
⚠️ Breaking Changes
⚠️ core: remove outputStyle=compact (#31016 )
remix: Remove deprecated static-serve target name from Remix
misc: Currently if an executor's schema provides some default
core: We are updating our minimum node version to 20.19.0
⚠️ core: respect packageManager field in package.json when detecting version (#29249 )
⚠️ release: support gitlab releases (#30802 )
testing: The previously deprecated and unused tsConfig
and
testing: The previously deprecated and unused tsConfig
option
⚠️ core: remove legacy cache flag from nx.json (#30787 )
⚠️ core: drop support for create nodes v1 in favor of only calling create nodes v2 (#30616 )
core: The previously deprecated readWorkspaceConfig
core: The cli
property from migration generator definitions
testing: The previously deprecated getJestProjects
function
⚠️ release: useLegacyVersioning is false by default, migrate config (#30838 )
angular: Remove the deprecated data persistence operators
❤️ Thank You
You can’t perform that action at this time.