17.3.0
17.3.0 (2024-01-29)
🚀 Features
- angular: support esbuild middleware functions (#21048)
- angular: support angular 17.1.0 (#20556)
- core: remove prompt from nx connect command (67b5bd6c9f)
- core: use Nx plugins and inferred targets when running "nx init" (#20872)
- core: create a new function to run child processes via rust (#21070)
- core: read name from package.json if present and no inference plugin provides name (#21125)
- core: add keepExistingVersions to all packages (#21169)
- core: add the "add" cli command (#20976)
- core: add target defaults in configuration generators rather th… (#21105)
- core: update ci-workflow generator (#21141)
- core: extend nxCloud prompt to include basic CI workflow options (#21094)
- core: move target defaults handling to nx plugin (#21104)
- core: forward stdin to commands started via rust (#21195)
- core: reveal --web flag on show project (#21293)
- core: use runCommand for runScript (#21292)
- core: support args to be an array for command (#21290)
- core: improve generated CI workflows (#21324)
- core: guide users to view the graph after nx init (#21303)
- core: pass down help to run-commands (#21331)
- cypress: simplify inferred cypress command (#21337)
- detox: add createNodes for detox (#21016)
- devkit: add a flag to keep existing versions when calling addDependenciesToPackageJson (#21123)
- docs: add {% project-details %} as a tag in markdown docs (#21288)
- expo: support createNodes for expo (#21014)
- graph: add nx console data loader (#20744)
- graph: rework pdv target section & remove unused code (#21159)
- graph: decouple graph client from nx.dev component (#21186)
- graph: allow expanding target when opening pdv from external api (#21189)
- graph: hover to see source & more UI updates (#21182)
- graph: add tooltips to project details view (#21205)
- graph: show open config button in graph web (#21181)
- linter: add .nx to ignored folders (#20720)
- linter: update @typescript-eslint/* package versions (#20602)
- linter: make init generator public (51c039b252)
- linter: move common options to target defaults (#20583)
- misc: align version of @types/node throughout repo (#20883)
- misc: add layout for project details view (#21172)
- misc: update minimatch version used across packages (#21207)
- misc: identify and set up more nx core plugins during nx init (#21254)
- misc: optionally update package.json scripts in init generators (#21204)
- misc: hide unpublished links in project details view (#21362)
- nextjs: Update @nx/next to Next.js 14 (#20703)
- nextjs: Add support for experimental-https when running dev server (#20836)
- nextjs: Standalone projects now default to src (#21010)
- nuxt: make nuxt public (#20656)
- nx-dev: add homepage updates (#20592)
- nx-dev: improve related docs section (#20796)
- nx-dev: adjust related section title padding (#20803)
- nx-dev: update documentation dropdown menu links (#20792)
- nx-dev: adjust highlighting of tagline (#20877)
- nx-dev: new year challenge (#20639)
- nx-dev: new year challenge (868721a157)
- nx-dev: modals and flip cards (e7dcce057b)
- nx-dev: rectangle cards (49a8d84023)
- react: Treat window and var library types the same (#20597)
- react: Add playwright support to generators (#21150)
- react-native: add support for createNodes in react native (#21013)
- react-native: generate pod install target (#21166)
- release: support Revert commits in changelog renderer (#20663)
- release: conventional commits support for independent projects (#21012)
- release: enable git operations by default (#21082)
- release: add fallback for currentVersionResolver in the version step (#21155)
- release: support conventionalCommits shorthand for version config (#21187)
- release: add formal entrypoint for programmatic API at nx/release (#21211)
- release: support version prefix for dependents (#21209)
- release: update lockfile after version command (#21107)
- release: global stageChanges option & changelog fixes (#21223)
- release: allow overriding generator and generatorOptions per project (#21298)
- remix: add remix (#20641)
- remix: add createNodes support for target inference (#21073)
- remix: generate vitest file instead vite.config (#21100)
- remix: remove projects prompt from artifact generators (#21112)
- remix: use esm config file (#21111)
- remix: add init generator (#21146)
- remix: add nx welcome component (#21383)
- storybook: nodes plugin (#20562)
- testing: add create-nodes plugin for playwright e2e targets (#20099)
- testing: add option to allow filtering test files in playwright executor (#20862)
- testing: add jest create-nodes plugin (#20045)
- vite: update to vitest v1 (#20747)
- vite: recognize all vite.config file extensions (#20971)
- vue: add nuxt as cnw vue framework (#20626)
- webpack: simplify inferred webpack-cli command (#21340)
- workspace: update readme to point people to the graph (#21325)
🩹 Fixes
- angular: add missing package update for @angular/pwa (#20690)
- angular: safely update task runner cacheable operations when setting up ssr (#20736)
- angular: fix standalone eslint config generation (#20885)
- angular: add named export for moduleFederationDevServerExecutor (#20944)
- angular: support scheduling inferred angular cli builder targets (#21019)
- angular: run function is not called in setup-ssr/application-builder (#21157)
- angular: support scoped project names and entrypoints in library secondary entrypoint generator (#21300)
- angular: update autoprefixer migration to the right file (#21363)
- angular: update setup-ssr generator to support the outputPath object variant (#21385)
- bundling: added back code to handle skipTypeField option of rollup executor options + tests (#20460)
- core: properly handle negated paths in cache outputs (#20661)
- core: show warning if workspaceRoot starts with ! (#20705)
- core: fallback to checking stderr if stdout is empty on publish executor (#20737)
- core: correctly move project and target strings (#20726)
- core: handle "." project roots properly for hashing (#20979)
- core: prioritize nxignore for watcher updates (#20975)
- core: formatter should not fail when absolute paths are provided as "--files" (#20331)
- core: handle invalid group glob groups (#21027)
- core: ensure connect-to-nx-cloud works with lerna workspaces (#20895)
- core: accept vue as preset in cnw (#21262)
- core: properly disconnect daemon & reject promise (#21283)
- core: fix socket dir removal for macos (#21306)
- core: remove deprecated recursive rmdir with rm -rf (#21327)
- core: exit with sigint when sigint is received (#21336)
- core: yargs array-like prompts initial field is number (#21349)
- core: clarify error log when a project exists in a directory (#21355)
- core: do not create new targets from target defaults when packag… (#21365)
- core: fix sending sigint to child tasks with the new psuedo tty … (#21369)
- core: fix compilerOptions may not exist (#21364)
- core: fix conflicting types from merge conflict (#21371)
- core: address some wonkiness when merging command and run-commands (#21315)
- devkit: update the ci generators to use the correct launch template (#21304)
- devkit: fix extractLayoutDirectory typescript types to better reflect allowed params and return value (#15339)
- expo: fix externalDependencies for expo plugin (#21213)
- graph: take vscode light/dark theme into account (#21208)
- graph: refresh pdv periodically in watch mode (#21218)
- graph: correct value when inputs/outputs are copied (#21245)
- graph: fix 404 when / in name (#21318)
- js: fixing output based on test runner selection (#20788)
- js: allow inlineable dependency to be added to externals (#21051)
- js: ensure result is valid before attempting to close it during rollup watch (ea3c2426d3)
- js: set the unsafeHttpWhitelist when the set has any items (#21216)
- js: add @swc/helpers when initializing js plugin since it is needed by other plugins (#21316)
- js: fix missing top-level dependencies in publishable libs (#17730)
- linter: move should migrate all eslint configs (#20709)
- linter: fix workspace-rule naming with flat config (#20782)
- linter: ensure angular entry point checks are correct (#20859)
- linter: flat config should always set path to config when using API (#20867)
- linter: only update overrides when applicable (#20917)
- linter: add links to docs to rules (#21199)
- linter: fix import of chalk for reporting (#21201)
- linter: update eslint plugins for @typescript-eslint v6 naming (#21221)
- misc: disallow path segments and allow scoped package name in --newProjectName option of move generator (#20768)
- misc: ignore .nx/cache when running nx init in an angular cli project (#21000)
- misc: install nx when no plugins selected during nx init (#21228)
- misc: identify usage of playwright correctly when running nx init (#21236)
- misc: install required deps during nx init without overriding existing versions (#21237)
- misc: do not print formatting errors while setting up nx cloud in nx init (#21302)
- misc: await async function invocations (#21299)
- module-federation: allow relative remote paths (#20763)
- module-federation: support buildable libs (#20786)
- nextjs: empty port should not overwrite env port (#20751)
- nextjs: Add missing setParserOptionProject (#20754)
- nextjs: Page generator should work out of the box (#20775)
- nextjs: enhance page generator to work when --project is not supplied (#20778)
- nextjs: remove temporary patch for next eslint rules (#20863)
- nextjs: correct inferred outputs for root Next.js projects (#20891)
- nextjs: update migration to handle projects without eslintrc (#20932)
- nextjs: Playwright should work with workspace libs (#20933)
- nextjs: Missing deps for image and css optimization (#20941)
- nextjs: Add support for mjs next config file (#21007)
- nextjs: PCV3 with Cypress and Playwright should work with standalone Next.js Projects (#21103)
- nextjs: custom server unable to run production builds (#21222)
- node: E2E test port conflicts (#20826)
- nuxt: add all target names when adding vite plugin (#21332)
- nx-dev: change to optimized for monorepos (#20668)
- nx-dev: adjust blog links (#20608)
- nx-dev: typo on the homepage (#20767)
- nx-dev: fix plugin stats (#20741)
- nx-dev: dynamic classes not allowed (#20800)
- nx-dev: improve styles (48bcb534fb)
- nx-dev: fix text colors (69523f1eed)
- nx-dev: fix heading size and improve contrast (#21057)
- nx-dev: standardize nx cloud naming (#21059)
- nx-dev: increase shorts video size to show volume control (#21142)
- nx-dev: do not open official plugins in new tab (#21179)
- nx-dev: align button sizes on hero (#21163)
- nx-dev: table of contents with code (#21173)
- react: webpack backwards compat for
@nx/react/plugin/webpack
(#20697) - react: skip adding comma to config when adding remote to host if… (#20620)
- react: remove tag from generated index.html (#20750)
- react: update default webpack config for component testing (#20749)
- release: changelog renderer should prefer breaking change explanation text (#20798)
- release: ensure leading v is stripped from provided semver version (#20815)
- release: add overall nx release command (#20535)
- release: publish error handling, dry-run in dependsOn (#20889)
- release: capture all release titles during parse (#20864)
- release: do not set extra v on GitHub release, improve GH API error handling (#20999)
- release: update error message check for npm dist-tags (#20995)
- release: stage changes when versioning with --projects argument (#21054)
- release: default changelog git commit and tag true (#21129)
- release: versionPrefix should default to auto (#21256)
- release: filtering publish by project or group should exclude task deps (#21231)
- release: fix --first-release with conventional commits and independent projects (#21320)
- release: only add nx-release-publish to public packages (#21338)
- release: disable workspace changelogs in config when not valid (#21341)
- release: do not restart the daemon when skipLockFileUpdate is set (#21389)
- release: ensure non-zero exit code is propagated, change missing target handling (#21388)
- remix: legacy package pointing to incorrect readme (#21113)
- remix: import of config file should invalidate cache (#21121)
- remix: required property in schema should be project (#21258)
- remix: use twStyles as import to prevent conflicts (#21276)
- remix: tsconfigs were being incorrectly generated causing errors #21002 (#21387, #21002)
- repo: add missing packages to nightly (#20908)
- repo: update nightly matrix with new packages (#20911)
- repo: fix version calculation on nx-release (#21382)
- storybook: do not throw for versions >=7 (#20770)
- storybook: handle output-dir properly for outputs (#21168)
- storybook: throw if no project name for angular (#21308)
- storybook: add storybook-static to gitignore for pcv3 (#21309)
- testing: avoid overwriting environment variables in nx cypress preset (#20748)
- testing: run playwright with the correct project option for multiple values (#20850)
- testing: safely handle circular deps in component testing plugin (#20852)
- testing: set correct type for ignoreTestFiles option in cypress executor (#20853)
- testing: Inline projects inside playwright.config.ts (#21188)
- vite: config migration account for other syntaxes (#20693)
- vite: better extra args resolution (#20708)
- vite: ignore CJS build deprecated warning (#20719)
- vite: allow vitest to be v1 (#20760)
- vite: only dynamically import vite (#20774)
- vite: vitest migration add reporters (#20823)
- vite: more properly resolve arguments from configurations (#20825)
- vite: dist and coverage paths for root projects (#20878)
- vite: include vitest config in nodes plugin (#20887)
- vite: build executor watch (#21042)
- vite: only import vite dynamically (#21050)
- vite: replaceFile and fileReplacement fixes (#21077)
- vite: do not add test target if test is not defined (#21076)
- vite: PCV3 Plugin update to use resolveConfig (#21287)
- vite: PCV3 multiple targets (#21366)
- vue: import vue libs in other libs - fix ts2307 (#21297)
- web: fix webpack + playwright config issues (#20991)
- webpack: migrate projects without webpackConfig to use webpack.config.js (#20699)
- webpack: fixed
isolatedConfig: false
option not composing plugins (#20678) - webpack: add standardWebpackConfigFunction option when users opts for a standard config function (#20702)
- webpack: handle both nx and nrwl scoped executors when migrating config (#20714)
- webpack: fix check for standardWebpackConfigFunction (#20728)
❤️ Thank You
- Ashwin Gokhale @ashwinGokhale
- Austin Fahsl @fahslaj
- Benjamin Cabanes @bcabanes
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- daiscog @daiscog
- Dmitriy Stepanenko @dmitry-stepanenko
- Emily Xiong @xiongemi
- Igor Katsuba @IKatsuba
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- jiayi
- Johanna Pearce
- Jonathan Cammisuli
- Julien Simonet @jmons54
- Juri Strumpflohner @juristr
- Kaden Wilkinson @kdawgwilk
- Katerina Skroumpelou @mandarini
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Miroslav Jonas @meeroslav
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- Tórur Zachariasen @torurz
- Tycho Bokdam @TriPSs
- Vadim Zhamkov @vadjs
- Yann Thibodeau