20.1.0 (2024-11-11)
🚀 Features
- angular: add vitest option to angular (#27311)
- bundling: add createNodesV2 for rollup plugin (#28090)
- core: allow disabling of tsconfig path sorting in format:write and formatFiles() (#28517)
- core: Update plugin generators so that they are formatted by default (#28593)
- core: upgrade semver to 7.6.3 (#28716)
- expo: build w/package.json overrides/resolutions (#28254)
- expo: use createNodesV2 (#28005)
- js: support esbuild and swc bundlers with the new ts solution config setup (#28409)
- js: update the setup-build generator to support the new ts setup (#28446)
- linter: add support eslint 9 --quiet param (#28743)
- misc: remove handling of @nrwl scope (#28589)
- module-federation: use latest module-federation/enhanced (#28296)
- module-federation: use module-federation runtime for dynamic federation (#28704)
- nextjs: update createNodes to createNodesV2 and add deprecation message (#28527)
- nextjs: add support for typescript Next.js config file (#28709)
- nx-cloud: configure import paths for light client when running … (#28735)
- nx-dev: add live stream notifier (#28260)
- nx-dev: update home hero & livestream notifier (#28403)
- nx-dev: add contact link on powerpack page (#28458)
- nx-dev: add videos to CI docs (84aba19bec)
- nx-dev: linkable resources page (46769b3c18)
- nx-dev: add customer case studies (75a73ed0e7)
- nx-dev: add video course page (#28736)
- react: update eslint plugins to be compat with eslint v9 (#28559)
- remix: generate remix vite application (#28555)
- remix: ensure migrations point to latest remix verison (#28876)
- rspack: add convert-webpack generator (#28167)
- rspack: make target property optional (#28785)
- rspack: move logic for withWeb to applyWebConfig and bring in line with webpack (#28803)
- testing: add support for the ts solution config setup to the playwright plugin (#28636)
- testing: split atomized outputs for Playwright and Cypress CI targets (#28682)
- testing: add disableJestRuntime option to @nx/jest/plugin to speed up target inference (#28522)
- testing: add support for the ts solution config setup to the cypress plugin (#28637)
🩹 Fixes
- add required minimizer setting to the generated Nest rspack conf… (#28629)
- angular: ensure provideStore is provided before storeDevTools #28107 (#28428, #28107)
- angular: add missing package version bump for zone.js (#28430)
- angular: use vitest generator instead of vite config generator (#28696)
- core: support
NX_NO_CLOUD
(#28366) - core: add busy handler for sqlite (#28390)
- core: handle
neverConnectToCloud
property (#28452) - core: add migration to set
useLegacyCache
by default (#28454) - core: repair SIGINT signals on windows (#28496)
- core: neverConnectToCloud should disable connecting to nxCloud (#28501)
- core: not to cache entire workspace root (#28552)
- core: make sure yarn berry correctly resolves latest version during nx add (#28580)
- core: handle concurrent db connections better (#28544)
- core: only check if files are in sync if there are no records in the db (#28597)
- core: createTaskGraph should accept extraTargetDependencies (#28542)
- core: skip eslint custom hasher when hashing tasks during running commands (#28616)
- core: update http-proxy-middleware (#28607)
- core: not install cypress when e2e is playwright for react monorepo preset (#28642)
- core: fix checks for wasm in db operations (#28676)
- core: retry more db operations (#28667)
- core: fix powerpack license information grammar (#28725)
- core: fix dependency with multiple dependent packages (#28669)
- core: fix create workspace for react native (#28763)
- core: ensure that
setWorkspaceContext
is run only on main nx packages (#28706) - core: revert archive file creation changes (#28817)
- core: fix cannot read properties of undefined (reading 'split') (#28761)
- core: task graph needs to handle multiple cycles (#28793)
- core: empty external deps should work properly (#28727)
- core: jest plugin should work with nodenext set in tsconfig (#28820)
- core: ensure that the database connection is closed when nx exits (#28821)
- core: create different dummy tasks for different targets (#28837)
- core: do not depend on ci info crate (#28850)
- core: shutdown plugin workers when disconnected (#28857)
- core: do not use unix dotfile locks (#28859)
- core: cross-workspace implicitDependencies should be safely ignored (#28845)
- core: Remove warning when Nx is not installed globally (#28868)
- core: reduce time it takes to require nx commands (#28884)
- devkit: do not write back to package.json when adding plugin and there are no changes (#28846)
- expo: pnpm+workspace build (#28209)
- expo: check if option is not undefined closes #28488 (#28489, #28488)
- expo: allow yarn 4 to install for build local (#28603)
- graph: make sure disabledTaskSyncGenerators can be set correctly from nx console (#28466)
- graph: add better pdv empty states when no targets exist (#28797)
- graph: enable action on the ViewOnGraph button regardless of the… (#28863)
- js: improve @nx/js/typescript plugin and typescript-sync generator performance (#28379)
- js: change verdaccio childProcess kill order (#28364)
- js: allow custom listenAddress for verdaccio (#28498)
- js: fix resolution of extended tsconfig files in plugin (#28535)
- js: set the
tsBuildInfoFile
as output when it's not contained in theoutDir
(#28538) - js: include referenced internal config files in plugin cache hash (#28536)
- js: provide absolute paths to hashFile function in @nx/js/typescript plugin (#28690)
- linter: scope js and ts shared configs to js and ts files (#28381)
- linter: ensure .cjs config file is handled correctly for generators #28214 (#28672, #28214)
- misc: update generators to use autocomplete instead of select when possible (#28851)
- module-federation: ensure mf-manifest supported and tspaths are added with snake_case (#28244)
- module-federation: remote names should follow JS variable naming schema (#28401)
- module-federation: normalize hypen names for runtime library control plugin #28497 (#28512, #28497)
- module-federation: add comment clarifying default export in config file (#28675)
- nextjs: Remove deprecated export executor (#28702)
- nextjs: Add deprecation message for svgr (#28705)
- nextjs: Fix json spread typo (#28728)
- nextjs: do not generate spec files if unitTestRunner is not set programmatically (#28733)
- nextjs: Formatting for pages (#28734)
- nextjs: update default next-env (#28861)
- nuxt: use loadNuxtConfig to load nuxt config for plugin (#28795)
- nx-dev: fix tabs logic (#28470)
- nx-dev: cleanup (e57b85152c)
- nx-dev: powerpack content update (ea01d39291)
- nx-dev: breadcrumbs extra text with query param (#28732)
- nx-dev: SEO tags (#28823)
- react: depends on migration should ignore configs that point to @nx/react #28377 (#28382, #28377)
- react: update rspack to include styles in the main bundle (#28478)
- react: ensure rspack react app is added to exclude on rspack plugin #28464 (#28515, #28464)
- react: selecting tailwind should import correct style file extension (#28630)
- react: ensure module federation template files are indented correctly (#28753)
- release: ensure plan subcommand works with object config (#28460)
- release: support workspace root as a subdirectory of git root (#28650)
- release: ensure dependents that are both direct and transitive are not bumped twice (#28878)
- repo: update version of actions/github-script in nightly script (#28784)
- rspack: log compilation errors #28179 (#28429, #28179)
- rspack: do not select char from string when mapping remotes (#28441)
- rspack: replace DefinePlugin with EnvironmentPlugin (#28252)
- rspack: make rspack dev server respect port (#28251)
- rspack: add dependency-checks lint rule (#28225)
- rspack: removed webpack-sources import (#28447)
- rspack: ensure baseHref is set when provided #28455 (#28660, #28455)
- rspack: set NODE_ENV to production correctly #28584 (#28662, #28584)
- rspack: ensure NX_PUBLIC env vars are available to applications #28720 (#28751, #28720)
- rspack: move main validation to implementation (#28794)
- rspack: remove unnecessary required properties in schema validation (#28796)
- storybook: fix yarn storybook upgrade 8 (#28605)
- storybook: fix externalDependencies undefined (#28641)
- testing: install playwright with-deps (#28738)
- vite: add vite temp files to gitignore #28371 (#28443, #28371)
- vite: use resolveConfig instead of loadConfigFromFile to ensure node env set #27627 (#28444, #27627)
- vite: set NODE_ENV to production correctly #28584 (#28663, #28584)
- vite: include vite mts config files (#28691)
- vite: add correct gitignore pattern for vite timestamp files #28685 (#28693, #28685)
- vite: tsconfig paths plugin should resolve file with dot in the name (#28701)
- webpack: update stylus version to fix security issue (#28646)
❤️ Thank You
- Ahmed Hakeem @Ahmed-Hakeem
- Alan Pazetto @alancpazetto
- Alexander Janssen
- Benjamin Cabanes @bcabanes
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Dmitry Zakharov @pumano
- Egor Kuzin @q2een
- Emily Xiong @xiongemi
- Francesco Moro @franzmoro
- Igor Loskutov @dearlordylord
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Cammisuli
- Juri @juristr
- Juri Strumpflohner @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Lorenzo @lorenzodejong
- Louie Weng @lourw
- MaxKless @MaxKless
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- Phillip Barta @Phillip9587
- Sam Tsai @samtsai
- Shantanu Jain @shantanu1227
- Tobias Engelhardt @tobiasengelhardt
- Younes Jaaidi @yjaaidi