18.1.1 (2024-03-15)
🚀 Features
- angular: update jest-preset-angular version (#21776)
- angular: add the extract-i18n executor (#21802)
- angular: ensure all targets are generated for application and libraries (#21826)
- angular: support angular 17.2.0 (#21671)
- angular: force explicit targets when NX_ADD_PLUGINS is not explicitly true (#21852)
- angular: update jest-preset-angular dependency to 14.0.3 (#21912)
- angular: remove optional @nx/cypress and @nx/jest from dependencies (#22162)
- bundling: bump rollup-plugin-typescript2 version (#20609)
- bundling: rollup should support ESM config files (#21999)
- bundling: crystalize rollup (#22045)
- core: update swc/register (#21755)
- core: add option to disable log grouping on CI (#21782)
- core: remove leading arrow from output headlines (#21359)
- core: remove leading arrow from output headlines" (#21800)
- core: support migrating to canary versions of nx for testing (#21812)
- core: flatten default base config to base (#19964)
- core: execute plugins in isolated processes (#21760)
- core: provide a hint when project.json has empty targets (#22028)
- core: add gradle plugin (#21055)
- core: use flag in nx.json for toggling crystal (#21980)
- core: forward options for run command (#22064)
- core: revert running plugins in isolation (#22246)
- core: run commands directly (#21918)
- detox: upgrade @config-plugins/detox to 7 (#21959)
- expo: support cjs and mjs (#21408)
- graph: add error boundary error page for project details (#22007)
- graph: add spinner on the projects page (#22149)
- js: replace publish script with nx release config (#21474)
- misc: log message in nx init when detecting plugins (#21932)
- nextjs: use global NX_GRAPH_CREATION in withNx plugin to guard against graph creation during create nodes (#22026)
- nuxt: export storybook generator (#21969)
- nx-dev: update launch conf timings (a0e4cf747d)
- nx-dev: update launch page link text (#21747)
- nx-dev: update website header components (#21833)
- nx-dev: change color for nx-agents & nx-ai buttons on home (#22142)
- react: add tailwind as style prompt option for app gen (#21784)
- release: prompt to create github release when no file changes (#21819)
- release: interpolate workspaceRoot in changelog path (#22058)
- release: add conventional commits configurability for version and changelog (#22004)
- remix: add playwright option for e2eTestRunner (#21603)
- remix: upgrade to latest remix 2.6.0 (#21843)
- remix: use Remix CLI directly with Remix Crystal Plugin (#22234)
- remix: support version 2.8.0 (#22326)
- remix: add option to create-nx-workspace (#22334)
- repo: use latest pnpm for CI runs (#22207)
- testing: update cypress version (#21961)
- testing: add getJestProjectsAsync to support inferred targets (#21897)
- vite: add vitest.workspace.ts at root (#21915)
🩹 Fixes
- angular: fix wrong trailing comma in mf bootstrap code generation (#21600)
- angular: support inferred cypress targets in setup-mf generator (#21619)
- angular: ajv hoisting issue (#21641)
- angular: resolve the index html transformer correctly for esbuild based build targets in dev-server (#21679)
- angular: generate app server module setup correctly in setup-ssr generator (#21702)
- angular: add missing forceEsbuild option to dev-server executor (#21753)
- angular: do not force explicit targets for separate e2e projects (#21865)
- angular: stop using npmScope as a prefix for component and directive selectors (#21828)
- angular: do not add target defaults for the ng-packagr-lite executor when generating non-buildable library (#21935)
- angular: ensure generated editor tsconfig in apps only include runtime files (#21945)
- angular: log message about unsupported ng cache command (#22154)
- angular: fix message logged for unsupported ng cache (#22211)
- angular: Module federation with Crystal enabled. (#22224)
- angular: install jsonc-eslint-parser only when @nx/dependency-checks is used (#22231)
- core: nx cloud prompt during migrate doesn't skip connection (#21588)
- core: pass the full resolved path of ts-node/esm when reloading the CLI (#21607)
- core: remove logic to reload process with esm loader for Node 18 (#21623)
- core: prevent target defaults from being discarded during merge process (#21624)
- core: add missing parts to ci workflws and update docs (ab76d6291a)
- core: temporary use forked portable_pty to inherit cursor position for windows (#21683)
- core: handle blocking stdin (#21672)
- core: remove implementation detail from warning (18efd62003)
- core: static run one lifecycle should always print dependent task status, and output when verbose (#21720)
- core: run migrations ordered by their target version (#21799)
- core: Update NxWelcome connect to cloud (#21830)
- core: propagate
verbose
flag when runninginit
generator dur… (#21868) - core: ensure migrate works with yarn PnP (#21824)
- core: align terminal output padding and remove leading arrow (#21809)
- core: read all targets from package json when defining target defaults (#21719)
- core: include nx/nuxt in migrations (#21885)
- core: do not use the new pty function for older versions of windows (#21854)
- core: normalize migration target versions when sorting migrations (#21967)
- core: target defaults application shouldn't include extra scripts (#21970)
- core: update generated README pages with more useful instructions (#21976)
- core: plugin pool should not clobber promises when called multiple times (#21977)
- core: plugins should not be registered twice and should respect shutdown queue (#22057)
- core: nextjs-standalone generates package scripts consistent with create-next-app (#21996)
- core: target defaults should represent nx.json in source info (#22080)
- core: setting up .nx inside gradle shouldn't throw (#21957)
- core: add outputs to nx.json for nx init in monorepo (#22061)
- core: fix no such file or directory, open 'package-lock.json' (#21835)
- core: reject all promises in pool during shutdown (#22188)
- core: fix terminal message alignment on errors (#22189)
- core: only start plugin workers once (#22222)
- core: properly cleanup when the project-graph creation fails (#22243)
- core: make windows runtime input hashing windowless (#22197)
- core: fix gh group success icon (#22281)
- core: fix pty for multiple commands in 1 process (#22294)
- devkit: respect expectComments when parsing json (#21584)
- graph: fix open project with / in name (#21722)
- graph: show command property as monospace (#21997)
- js: babel preset should also check for JEST_WORKER_ID to transpile to CJS (#21754)
- js: nx release-version resolve-version-spec should normalize fetchSpec (#21710)
- js: swc executor should support inlining on windows (#21801)
- js: set moduleResolution to Node10 so it is compatible with CommonJS module (#21979)
- js: use NodeJs moduleResolution with ts-node to support CommonJS module and TS 4.x (#22258)
- linter: adjust terminal run check for crystal (#21638)
- linter: fix eslint-plugin migration target version (#21966)
- linter: add v7 of typescript-eslint to peerDeps (#21853)
- linter: refactor pcv3 plugin, expose configFiles on context (#21677)
- misc: handle workspaces if no plugin selected in nx init and only generate files after prompts (#21606)
- misc: ensure swc transpiler process required files (#21674)
- misc: pin generated vite version to ~5.0.0 to avoid issues with storybook (#21740)
- misc: logs from rm-default-collection should render properly (#21953)
- misc: set nx property in root package.json when no replacing script in nx init (#21974)
- misc: migration should shutdown plugin workers if it starts them (#22048)
- misc: make sure to add e2e crystal plugin (#22041)
- misc: fix buildable libs utils calculating dependent projects from task graph (#22015)
- misc: add missing format files call (#22137)
- misc: improve package.json scripts handling when running "nx init" and "nx add" (#22168)
- misc: do not add includedScripts unless really needed when running nx add (#22180)
- module-federation: map static remote locations correctly (#21709)
- module-federation: ensure targetDefaults for module federation executors are setup correctly (#22282)
- nextjs: move
next/constants
from top-level import to when it is needed (#21612) - nextjs: Enable next e2e test (#21625)
- nextjs: src package.json should not be copied to output folder (aa622bab5a)
- nextjs: Custom server should work with Crystal (#21736)
- nextjs: Svg should work when svgr is true in next config (#21761)
- nextjs: Add missing e2e-ci target for cypress (#21805)
- nextjs: Add spec files when creating a next app (#22079)
- nextjs: avoid path error on dev server creation (#21998)
- nextjs: Adding styles to nextjs cypress should not fail. (#22170)
- nextjs: Surface error codes when build is interrupted by signals SIGINT, SIGTERM etc... (#22190)
- nextjs: runCLI stdio (#22267)
- node: Broken E2E tests (#21569)
- node: Increase timeout for CI (#22003)
- nuxt: init generator should add @nx/vite to dependencies (#21911)
- nuxt: turn on autoimport (#21894)
- nuxt: tsconfig types and output dir (#21934)
- nuxt: fix storybook preview config path (#22020)
- nuxt: Add e2e-ci and serve-static targets (#22056)
- nx-dev: redirect core-features page (#21616)
- nx-dev: launch page mobile experience (de676e207f)
- nx-dev: redirect on remote caching page (#21669)
- nx-dev: remove fence from new packages and "nx add" commands (#21705)
- nx-dev: add colors to ms logo (#21790)
- nx-plugin: do not print duplicated warning about derived format when generating plugin (#22230)
- nx-plugin: support root tsconfig.json in nx-plugin-checks eslint rule (4850bdb6aa)
- playwright: fix include in tsconfig.json (#21730)
- react: generate correctly when --js is used for module federation host/remote (#20119)
- react: full support custom secure host for module federation (#21777)
- react: ensure playwright configuration is using correct port in app gen (#21941)
- react: pass correct argument to rspack configuration generator (#22241)
- react-native: change gradlew to absolute path (#21725)
- react-native: add all flag to sync-deps (#21821)
- react-native: pin ajv version to 8.12.0 (#22002)
- release: logging improvements (#21692)
- release: ensure
nx release publish --graph
only includes projects with target (#21726) - release: do not stop daemon in dry-run (#21743)
- release: skip prompt for publish when no version created (#21769)
- release: use --first-parent to support merged repos (#21686)
- release: move github release creation to git tasks (#21510)
- release: currentVersionResolver git-tag should prefer merged tags (#22082)
- release: skip lock file update if workspaces are not enabled (#22055)
- release: store rawVersionSpec on versionData (#22071)
- release: fix default renderer resolution to be relative within t… (#22331)
- remix: do not rename root jest.preset.js (#21703)
- remix: should add remix plugin to nx.json on init correctly (#21827)
- remix: the output path should respect the remix.config.js in crystal (#21842)
- remix: adjust remix start script when building (#21883)
- remix: typo in tsconfig.spec.json update led to invalid tsconfig (#21886)
- remix: ensure component-testing is exported correctly #22091 (#22095, #22091)
- repo: update browser tools to fix ci (#21955)
- storybook: handle main.js file correctly in storybook plugin (#22081)
- testing: cleanup e2e atomization plugins (#21688)
- testing: increase the default timeout to 15s for the dev server to start (#21716)
- testing: ensure cypress closes the web dev server (#21759)
- testing: jest should handle root jest.preset.cjs (#21746)
- testing: fix cypress project targets does not exist (#21785)
- testing: pin cypress version to avoid issue with verifying cypress (#21917)
- testing: ensure baseUrl is not passed to playwright cli (#21943)
- testing: playwright plugin enoent error (#21951)
- testing: add null checks when reading targets (#21952)
- testing: calculate correct support file path in cypress e2e preset (#22096)
- testing: increase the default timeout to 60s for the cypress web dev server to start (#22132)
- testing: close cypress web server correctly on windows (#22125)
- testing: resolve cypress config glob pattern correctly to handle root projects (#22165)
- testing: minor adjustment to the config generation template (#22175)
- testing: fix project config might not be defined (#22174)
- vite: import esbuild before loading config to keep it in cache (#21685)
- vite: normalize vitest cli args in executor (#21870)
- vite: project conversion generator (#21646)
- vite: update vitest and use parseCLI (#21890)
- vite: Storing nxjson details too early (#22285)
- vue: fixing vue and nuxt welcome templates (#21792)
- vue: tailwind generator ignoring styleSheet option (#21840)
- vue: small typo in CNW description (#21888)
- webpack: require ForkTsCheckerWebpackPlugin only as required (#21629)
- webpack: resolve relative path for assets inputs (#21822)
- webpack: correctly handle paranthesis in PostCSS in url (#21884)
- webpack: surface original error when remotes fail to start (#21919)
❤️ Thank You
- Alex Swindler
- Alon Valadji @alonronin
- Austin Fahsl @fahslaj
- Benjamin Cabanes @bcabanes
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Dan Roujinsky
- Edouard Bozon @edbzn
- Emily Xiong @xiongemi
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Javier Abia @weberjavi
- Jonathan Cammisuli
- Julian Martin
- Juri @juristr
- Juri Strumpflohner @juristr
- Katerina Skroumpelou @mandarini
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Miroslav Jonas @meeroslav
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- Nikita Barsukov @nsbarsukov
- Philip Fulcher
- Remco Krams
- Steven Nance @llwt
- Tine Kondo @tinesoft
- Vadim Goy
- Victor Login @batazor
- Viktor Pöntinen
- Yu Zheng
- Zachary DeRose @ZackDeRose