17.0.0
🚀 Features
- angular: switch default to typescript configuration for module federation (#18998)
- angular: support generating artifacts using options as provided (#19527)
- angular: add federate-module generator (#19523)
- angular: use consistent artifact generation for generators (#19601)
- core: accept various task runner options from root of nx.json (#19243)
- core: read cloud url from nx.json (#19468)
- core: add --type for nx show projects (#19358)
- core: add NX_PARALLEL env var (#19488)
- core: generate new workspaces without tasks runner options (#19483)
- core: update default cache directory to .nx/cache (#19536)
- core: migrate existing workspaces to slimmer tasks runner options config (#19570)
- core: add the outputs of a task onto the task (#19561)
- core: remove deprecated workspace generator command (#19541)
- core: add nx task planner (#19233)
- core: Allow specifying daemon socket dir (#17870)
- core: allow using Nx Cloud without nx-cloud installed (#19553)
- core: remove deprecated workspace-lint (#16212)
- core: add batch flag to run (#19575)
- core: update version of axios used (#19607)
- core: add standard way to pass plugin options (#19589)
- core: generate standalone projects with scoped package names (#19662)
- core: allow specifying cacheability per target (#19672)
- core: remove deprecated defaultCollection and npmScope nx.json … (#19708)
- devkit: remove backwards compatibility for Nx 15 (#19572)
- graph: display expanded task inputs (#19597)
- js: add @swc-node/register and @swc/core to JS projects by default (#19453)
- js: remove options to update package.json dependencies and peerDependencies (#19543)
- linter: remove tslint logic (#19002)
- linter: update eslint-config-prettier to v9 (#19232)
- linter: rename @nx/linter to @nx/eslint (#19515)
- misc: remove migrations for v14 and under (#19552)
- misc: remove deprecated Angular CLI usage of schematics and builders (#19557)
- misc: remove deprecated code from @nx/workspace (#19588)
- nest: update nest generators to support name and directory format option (#19668)
- nuxt: init, app, component, page generators (#19509)
- nuxt: storybook generators (#19529)
- nx-dev: statically highlight lines in code (#19703)
- nx-dev: mark internal properties (#19659)
- nx-plugin: add as provided prompt for executor generator (#19602)
- nx-plugin: add as-provided mode for generator and migration gen… (#19614)
- react: Add federate-module generator (#19286)
- react: Add support for promise based remotes (#19566)
- react: use TS config files for module federation (#19455)
- react: remove stylus option from generators (#19441)
- react: support generating components using the path as provided (#19608)
- react: add recursive remote serve (#19638)
- vite: future-proof Vite plugin to support ESM-only version of Vite (#19533)
- vue: set @nx/vue as public (#19582)
- vue: support generating components using the path as provided (#19609)
🩹 Fixes
- angular: install swc/helpers when generating remote applications (#19686)
- angular: fix usage of internal generators and prevent usage of deprecated project option (#19697)
- angular: federate-module should support as-provided for new remotes (#19731)
- core: register transpiler should setup loading for node code (#19454)
- core: use typescript to get compiler options for ts-node (#19480)
- core: hash the same environment as the tasks are run with (#19487)
- core: set prerelease on GitHub release API request (#19532)
- core: typo in cache error message (#19547)
- core: notify life cycles that tasks are scheduled after they are… (#19610)
- core: fix verification of non-existent cloud client (#19613)
- core: correct windows path for native watcher (#19646)
- core: support prettier v3 when run nx format (#19207)
- core: setup the nx cloud client during postinstall (#19658)
- core: removes formatting from show command when using --json flag (#19583)
- core: remove -d alias because it conflicts with --dry-run (#19664)
- core: always hash runtime input (#19670)
- core: ensure CNW works without .yarnrc with custom registry (#18937)
- core: only show cloud messaging when migrating if not using cloud (#19709)
- core: check nxjson cli exists before looking for keys (#19730)
- core: fix convert to monorepo eslint issue (#19713)
- devkit: pass filepath to ejs for include statements (#19517)
- devkit: correct nx-json typing after plugin tweaks (#19706)
- js: remove deprecated babel transform (#19671)
- js: update esbuild version (#19728)
- js: Avoid
@babel/preset-env
warning in js/babel.ts (#14772) - js: use normalized tsConfig path for generating tmpTscConfig (#18794)
- linter: fix validateDependenciesSectionExistance fixer (#19512)
- linter: fix linter standalone patterns in Js and Next (#19508)
- linter: remove consistent-type-assertions rule from config (#19549)
- linter: add missing entry to migrations.json (#19641)
- linter: add @nx/linter in nx packageGroup (#19654)
- linter: handle string extends property in config (#19674)
- linter: add migration for eslint config prettier (#19732)
- misc: don't interpolate arg as
undefined
(#18666) - misc: pass full path to tsconfig when registering transpiler (#19451)
- misc: remove projectNameAndRootFormat from nx.json schema (#19623)
- misc: do not normalize project name and root when using as-provided format (#19651)
- misc: update re-exports when updating imports during move (#19637)
- nest: add deprecated messages to generator js schema and fix casing (#19678)
- nextjs: Add missing environment variables for Nx 18 environment variables (#19585)
- nextjs: Library generator should not add cypress dependency (#19587)
- nx-cloud: fix nx connect throwing if run twice (#19729)
- nx-dev: video cards formatting (#19449)
- nx-dev: fix internal link checker (#19606)
- nx-dev: fix broken linter icon (#19735)
- nx-plugin: enable prompt for generator and migration generators (#19675)
- nx-plugin: add nameAndDirectoryFormat to schema for generator,ex… (#19710)
- react: Add missing Nx Welcome for styled-jsx (#19474)
- react: storybook plugin tsconfig resolution (#19631)
- react: update usage of deprecated "project" option in generators (#19696)
- react: respect unitTestRunner none and inform about vitest (#19676)
- react: Error when invalid path is provided to federate-module generator (#19720)
- react: fix creating a react library with cwd (#19721)
- storybook: cleanup v17 tasks (#19560)
- storybook: default ignore .stories. files (#19699)
- storybook: do not restrict to components dir for vue (#19680)
- storybook: update to patch 7.5.1 webpackStatsJson fix (#19736)
- testing: fix flaky test (#19625)
- vite: configuration generator fixes (#19628)
- vue: ensure standalone has proper lint rule (#19505)
- vue: enforce multiword component name (#19507)
- vue: replace className with class on html (#19500)
- vue: turn multi-word component lint rule off since there is always one for restricted HTML elements (#19645)
- vue: update standalone setup so tsconfig.base.json is not generated (#19660)
- vue: remove unitTestRunner option from component generator (#19667)
- vue: make sure project is in normalizedOptions (#19690)
- vue: comment out unused defineProps function (#19695)
- vue: downgrade @vue/eslint-config-prettier to work with prettier v2 (#19741)
- vue: default unit test to vitest (#19746)
- webpack: add guard around onListening call (#19363)
- webpack: only register TS transpiler for config files ending with .ts, .mts, or .cts (#19579)
⚠️ Breaking Changes
@nx/linter
has been renamed to@nx/eslint
. There is a migration for this.workspaces-generator
command has been removed. This was deprecated since v15 and only errored.workspaces-lint
command has been removed. This was deprecated since v15 and only errored.defaultCollection
can no longer be configured innx.json
. There is a prompt to choose the collection when running a generator name which exists in multiple collections.npmScope
can no longer be configured innx.json
. Import paths in libraries will have a scope which is the same as the scope of the name in the rootpackage.json
. Most generators should have animportPath
override to control the import path entirely.- Nx generators and executors can no longer be used as Angular CLI schematics and builders. You can still wrap them with
@nx/devkit
methods to use them programmatically. - Deprecated exported utils from
@nrwl/workspace
have been removed.
❤️ Thank You
- Abel @abel1105
- Andrew Ovens @107420510+aovens-quantifi
- Caleb Ukle
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Emily Xiong @xiongemi
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- Jacob Ley @37151850+JacobLey
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Cammisuli
- Justin Dietz
- Katerina Skroumpelou @mandarini
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @34165455+MaxKless
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- Phillip Barta @Phillip9587
- Rik Smale @13023439+WikiRik
- Sam Y @996939+mauris
- Tomasz Kasowicz @TomaszKasowicz
- Travis Cline @tmc