19.1.0 (2024-05-24)
🚀 Features
- angular: support angular 18.0.0 (#22509)
- bundling: added support for declarations (*.d.ts) (#21084)
- core: add an option to seperate the output of show with provide… (#23172)
- core: support finding matching projects with only negative patterns (#22743)
- core: default show to web view when in interactive terminal (#23358)
- core: resolve nx migrate target version against registry (#23450)
- core: allow executor definition to point to another executor (#23576)
- core: add bun package manager (#22602)
- graph: change gradle and nextjs svg (#23201)
- graph: show script content in header (#23257)
- misc: improve nx cloud setup prompts and messaging (#23218)
- module-federation: add remote configuration override (#19694)
- nextjs: Update Next & Tailwindcss Package (#23313)
- nx-dev: show banner on documentation pages (#23266)
- nx-dev: check for missing images (#23248)
- nx-dev: put banner above menu (#23335)
- nx-dev: Add more blogs (#25939)
- react: Add SvgOptions for NxReactWebpackPlugin and WithNx (#23283)
- react-native: add optional syncDeps param to storybook executor (#22032)
- release: updateDependents generator option for versioning, support circular dependencies (#23252)
- testing: updates cypress and @cypress/webpack-dev-server (#22902)
- testing: remove --watch=false from inferred vitest targets to keep things inlined with vitest recommendations (#25975)
- vite: support incremental builds with nxViteTsPaths (#23908)
🩹 Fixes
- angular: libraries should not contain tslib by default #21023 (#23423, #21023)
- angular: @angular/core should always be provided as a shared package #19121 (#23464, #19121)
- bundling: rollup does not log build errors (#23141)
- bundling: resolve index files from ts paths when running esbuild without bundling (#23098)
- core: set yarn berry nodeLinker correctly in migrate command (#23249)
- core: show project --web shouldn't error (#23251)
- core: update getLastValueFromAsyncIterableIterator to support AsyncIterables returned from executors (#23229)
- core: include more binary extensions (#22788, #22861)
- core: workspace remove generator should handle no root jest config (#23328)
- core: addPlugin should not conflict on project.json targets (#23264)
- core: throw a specific error for print-affected and affected graph (#23336)
- core: properly indent command output with mixed line endings (#23321)
- core: read socket dir on demand & load .env files on client startup (#23348)
- core: not load env files when NX_LOAD_DOT_ENV_FILES is false (#23231)
- core: addPlugin should not conflict on project.json targ… (#23391)
- core: fix affected detection for inputs after named inputs (#23354)
- core: fix eslint --help command (#23274)
- core: copy native files to tmp file location instead of .nx/cache (#23375)
- core: retry interrupted errors when writing to stdout (#23359)
- core: do not add an ending new line when serializing a json (#23440)
- core: migrate should warn if package does not exist (#23317)
- core: azure ci workflow (#23453)
- core: only check for
err
inhandleWorkspaceChanges
(#23500) - core: remove duplicate
js-yaml
packages (f1ae1bc879) - core: fix alias package parsing and pruning for npm (#23474)
- core: install packages per migration when creating commits (#23820)
- core: more helpful output for format:check --verbose (#23503)
- core: fix buildTargetFromScript takes a long time (#25209)
- core: cache getting the package manager to the module scope (#25992)
- core: use zkochan/js-yaml directly to avoid false audit errors (#25999)
- core: use current user when hashing native file & enable setting its directory via env (#24326)
- devkit: combineAsyncIterable should not be blocking when error occurs #21393 (#23400, #21393)
- gradle: use local gradlew instead of sdkman (#23205)
- gradle: run gradle init if no settings.gradle (#23226)
- graph: properly remove tag when generating static graph file (#23399)
- graph: reload graph app only when hash changes in watch mode (#23434)
- js: Adds mjs files to prettierrcNameOptions (#21796)
- js: copy assets handler should correctly handle assets on windows (#23351)
- js: Respect loose option provided from config (#23406)
- js: fix update package.json (#21415)
- js: print warning when --generateLockfile is used with Bun rather than erroring out (#25158)
- js: export setup verdaccio generator (#24008)
- js: handle tsconfig file with no compilerOptions (#25966)
- linter: ensure config.rules is spread into rules in flat config migration (#23263)
- linter: ensure all spreads are removed from rules before parsing (#23292)
- linter: log transpilation errors of workspace rules (#21503)
- linter: rename languageSettings to languageOptions for flat config migration (#22924)
- linter: fix migrating projects with the eslint plugin (#23147)
- linter: support eslint v9 (#24632)
- linter: only set flat config env for eslint v9+ (#25189)
- linter: only depend on eslint v8 (#25938)
- linter: migrate no-extra-semi rules into user config, out of nx extendable configs (#26011)
- linter: move eslint to peerDependencies and allow eslint 9 (#26013)
- misc: create workspaces and default app with the name as provided (#23196)
- ⚠️ misc: adjust deprecation messages to v20 (#23223)
- misc: move e2e-ci to a separate parallel 1 command (#23305)
- misc: guard against failure to decode file in migration (#23069)
- misc: adjust npm keywords (#24743)
- misc: various inference plugins caching should track changes (#23315)
- module-federation: nested projects should be ordered first when reading from tsconfig paths #20284 (#23212, #20284)
- module-federation: Throw an error if remote is invalid (#23100)
- nextjs: Moving a library using @nx/workspace:move should update … (#23311)
- nextjs: additional experimental HTTPS options (#23334)
- node: Docker generator should work (#23452)
- nx-cloud: ensure generated ci workflows use dlx for nx-cloud (#23333)
- nx-dev: fix home page mobile menu (#23250)
- nx-dev: move table of contents down (#23350)
- react: respect unitTestRunner passed to the generator (#23383)
- react: remote generator should update host's app routes (#23499)
- react: applications not using plugin usage should set target defaults (#23582)
- react-native: fix test-setup for react native/expo jest (#23314)
- release: ensure changelog renderers are resolvable when processing config (#23214)
- release: invalid tag for fixed groups without changes (#22800)
- release: npm publish error when file path contains spaces (#24750)
- repo: hash proper projects when nx (#23506)
- storybook: should handle inferred cypress when generating cypress project #21770 (#23327, #21770)
- testing: resolve absolute paths for ts path mappings in jest resolver (#23346)
- testing: ignore jest-sequencer- paths in jest resolver (#23396)
- testing: check for project eslint config file in cypress and pla… (#23401)
- testing: handle existing jest preset file correctly (#23437)
- vite: don't generate tasks for remix projects (#22551)
- vite: get tsconfig from new path including target (#22775)
- vite: support passing --watch to inferred vitest commands (#23298)
- vite: generate vitest cache dir scoped to each project root and normalize vite cache dir (#23330)
- vite: migration should handle config object correctly #20921 (#23364, #20921)
- vite: add prop to config to ensure output dir is emptied #23382 (#23466, #23382)
- vue: ootb unit testing should work with --routing #19921 (#23441, #19921)
- web: Add strict mode (#23457)
- web: Add strict mode" (#23472)
- web: Add strict mode for @nx/web (#23497)
- webpack: fix default compiler option (#22762)
- webpack: don't overwrite output config (#22116)
- webpack: publicPath and rebaseRootRelative (#20992)
- webpack: apply-base-config should initialize options it will set #23296 (#23368, #23296)
- webpack: only add entrypoints if they are intentionally injected #20049 (#23444, #20049)
⚠️ Breaking Changes
- misc:
nx print-affected
was deprecated in 16.4.0 and has
❤️ Thank You
- andriizavoiko @andriizavoiko
- arekkubaczkowski @arekkubaczkowski
- castleadmin @castleadmin
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Daniel Santiago
- Denis Bendrikov
- dmcweeney
- Dmitry Zakharov @pumano
- Edward Wang @wzc0415
- Emily Xiong @xiongemi
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Cammisuli
- Jordan Hall @Jordan-Hall
- Katerina Skroumpelou @mandarini
- Krystian Sowiński @plumcoding
- Leosvel Pérez Espinosa @leosvelperez
- Mateo Tibaquirá
- Matthias Stemmler @ms-tng
- MaxKless @MaxKless
- Mehrad Rafigh @mehrad-rafigh
- Mike Peters
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- Patrick P @ppfenning92
- Phillip Barta @Phillip9587
- Robin Csutorás
- Sean Sanker
- Younes Jaaidi