diff --git a/docs/blog/2023-02-16-nx-15-7-node-support-angular-lts-lockfile-pruning.md b/docs/blog/2023-02-16-nx-15-7-node-support-angular-lts-lockfile-pruning.md index 21de28c325..8cbcd0aba2 100644 --- a/docs/blog/2023-02-16-nx-15-7-node-support-angular-lts-lockfile-pruning.md +++ b/docs/blog/2023-02-16-nx-15-7-node-support-angular-lts-lockfile-pruning.md @@ -88,7 +88,7 @@ $ nx migrate latest --from=nx@ In particular, we're working on making that part more intuitive in upcoming versions. -Also, have a look at our [updated docs](/recipes/tips-n-tricks/advanced-update) as well as our [Nx and Angular compatibility matrix](/nx-api/angular/documents/angular-nx-version-matrix) for more details. +Also, have a look at our [updated docs](/recipes/tips-n-tricks/advanced-update) as well as our [Nx and Angular compatibility matrix](/technologies/angular/recipes/angular-nx-version-matrix) for more details. ## Bootstrapping a new Angular app with Standalone API support @@ -135,7 +135,7 @@ Stay tuned for a more in-depth blog post coming soon to [our blog](/blog). Nx provides support for Storybook version 7.0 beta, with generators and executors, so that you can try it out now, either in a new or in your existing Nx workspace. Storybook version 7 is a major release that brings a lot of new features and improvements. You can read more about it in the [Storybook 7 beta announcement blog post](https://storybook.js.org/blog/7-0-beta/). Apart from the new features and enhancements, it also brings some breaking changes. You can read more about them in the [Storybook 7 migration docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#from-version-65x-to-700) and the [Storybook 7 migration guide](https://chromatic-ui.notion.site/Storybook-7-migration-guide-dbf41fa347304eb2a5e9c69b34503937). Do note that _version 7 is still in beta_, and so is the Nx support for it. -You can try out Storybook 7.0 beta in a new Nx workspace by passing the `--storybook7betaConfiguration` flag when generating the Storybook configuration for your projects. Read more in our [Storybook 7 setup guide](/nx-api/storybook/documents/storybook-7-setup). If you want to migrate your existing Storybook configuration to Storybook 7.0 beta, please read our [migration guide](/nx-api/storybook/generators/migrate-7). +You can try out Storybook 7.0 beta in a new Nx workspace by passing the `--storybook7betaConfiguration` flag when generating the Storybook configuration for your projects. Read more in our [Storybook 7 setup guide](/technologies/test-tools/storybook/recipes/best-practices). If you want to migrate your existing Storybook configuration to Storybook 7.0 beta, please read our [migration guide](/nx-api/storybook/generators/migrate-7). ## More flexible Webpack config diff --git a/docs/blog/2023-07-06-nx-16-5-release.md b/docs/blog/2023-07-06-nx-16-5-release.md index bc49f19edf..1a9d81a4dd 100644 --- a/docs/blog/2023-07-06-nx-16-5-release.md +++ b/docs/blog/2023-07-06-nx-16-5-release.md @@ -60,7 +60,7 @@ Angular is continuing their pattern of releasing new and exciting features — a As usual, we provide migrations to the most recent Angular version to cover your codebase for any breaking changes going to Angular 16. -And in case you missed it, Nx is no longer tied to your Angular version — the most recent version of Nx will now always [support all currently LTS versions of Angular](/nx-api/angular/documents/angular-nx-version-matrix), meaning you DON'T have to upgrade your Angular version in order to get all these latest Nx Features. Be sure to use the `--interactive` flag to take advantage of this feature: `nx migrate latest --interactive`. You can find more details in [our docs for choosing optional packages to apply](/recipes/tips-n-tricks/advanced-update). +And in case you missed it, Nx is no longer tied to your Angular version — the most recent version of Nx will now always [support all currently LTS versions of Angular](/technologies/angular/recipes/angular-nx-version-matrix), meaning you DON'T have to upgrade your Angular version in order to get all these latest Nx Features. Be sure to use the `--interactive` flag to take advantage of this feature: `nx migrate latest --interactive`. You can find more details in [our docs for choosing optional packages to apply](/recipes/tips-n-tricks/advanced-update). {% youtube src="https://youtu.be/AQV4WFldwlY" /%} diff --git a/docs/blog/2025-05-08-improved-module-federation.md b/docs/blog/2025-05-08-improved-module-federation.md index e726172771..bb82b91fd2 100644 --- a/docs/blog/2025-05-08-improved-module-federation.md +++ b/docs/blog/2025-05-08-improved-module-federation.md @@ -27,9 +27,9 @@ However, before even being able to contemplate that, a different feature needed We have introduced three new [Rspack](https://rspack.dev) Plugins for Module Federation that can be used with Nx. -- [NxModuleFederationPlugin](/nx-api/module-federation/documents/nx-module-federation-plugin): Gathers information from the Nx Workspace to correctly configure `rspack.ModuleFederationPlugin` -- [NxModuleFederationDevServerPlugin](/nx-api/module-federation/documents/nx-module-federation-dev-server-plugin): Used to handle the static-serving of non-dev remotes for CSR applications -- [NxModuleFederationSSRDevServerPlugin](/nx-api/module-federation/documents/nx-module-federation-dev-server-plugin#server-side-rendering): Used to handle the static-serving of non-dev remotes for SSR applications +- [NxModuleFederationPlugin](/technologies/module-federation/recipes/nx-module-federation-plugin): Gathers information from the Nx Workspace to correctly configure `rspack.ModuleFederationPlugin` +- [NxModuleFederationDevServerPlugin](/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin): Used to handle the static-serving of non-dev remotes for CSR applications +- [NxModuleFederationSSRDevServerPlugin](/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin#server-side-rendering): Used to handle the static-serving of non-dev remotes for SSR applications These are true Rspack Plugins that should be added to the `plugins: []` of an `rspack.config` file. diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index 46dc05fd8f..36474fd63a 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -1223,6 +1223,30 @@ "isExternal": false, "children": [], "disableCollapsible": false + }, + { + "name": "Nx and the Angular CLI", + "path": "/technologies/angular/recipes/nx-and-angular", + "id": "nx-and-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Devkit and Angular Devkit", + "path": "/technologies/angular/recipes/nx-devkit-angular-devkit", + "id": "nx-devkit-angular-devkit", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular and Nx Version Matrix", + "path": "/technologies/angular/recipes/angular-nx-version-matrix", + "id": "angular-nx-version-matrix", + "isExternal": false, + "children": [], + "disableCollapsible": false } ], "disableCollapsible": false @@ -1233,47 +1257,6 @@ "id": "api", "isExternal": false, "children": [ - { - "id": "documents", - "path": "/technologies/angular/api/documents", - "name": "documents", - "children": [ - { - "id": "Overview", - "path": "/technologies/angular/api/documents/overview", - "name": "Overview", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "Nx and the Angular CLI", - "path": "/technologies/angular/api/documents/nx-and-angular", - "name": "Nx and the Angular CLI", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "Nx Devkit and Angular Devkit", - "path": "/technologies/angular/api/documents/nx-devkit-angular-devkit", - "name": "Nx Devkit and Angular Devkit", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "Angular and Nx Version Matrix", - "path": "/technologies/angular/api/documents/angular-nx-version-matrix", - "name": "Angular and Nx Version Matrix", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, { "id": "executors", "path": "/technologies/angular/api/executors", @@ -3508,6 +3491,22 @@ "isExternal": false, "children": [], "disableCollapsible": false + }, + { + "name": "NxModuleFederationPlugin", + "path": "/technologies/module-federation/recipes/nx-module-federation-plugin", + "id": "nx-module-federation-plugin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "NxModuleFederationDevServerPlugin", + "path": "/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin", + "id": "nx-module-federation-dev-server-plugin", + "isExternal": false, + "children": [], + "disableCollapsible": false } ], "disableCollapsible": false @@ -3518,31 +3517,6 @@ "id": "api", "isExternal": false, "children": [ - { - "id": "documents", - "path": "/technologies/module-federation/api/documents", - "name": "documents", - "children": [ - { - "id": "NxModuleFederationPlugin", - "path": "/technologies/module-federation/api/documents/nx-module-federation-plugin", - "name": "NxModuleFederationPlugin", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "NxModuleFederationDevServerPlugin", - "path": "/technologies/module-federation/api/documents/nx-module-federation-dev-server-plugin", - "name": "NxModuleFederationDevServerPlugin", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, { "id": "migrations", "path": "/technologies/module-federation/api/migrations", @@ -3685,45 +3659,37 @@ "id": "eslint-plugin", "isExternal": false, "children": [ + { + "name": "Guides", + "path": "/technologies/eslint/eslint-plugin/recipes", + "id": "recipes", + "isExternal": false, + "children": [ + { + "name": "The enforce-module-boundaries rule", + "path": "/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "The dependency-checks rule", + "path": "/technologies/eslint/eslint-plugin/recipes/dependency-checks", + "id": "dependency-checks", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, { "name": "API", "path": "/technologies/eslint/eslint-plugin/api", "id": "api", "isExternal": false, "children": [ - { - "id": "documents", - "path": "/technologies/eslint/eslint-plugin/api/documents", - "name": "documents", - "children": [ - { - "id": "Overview", - "path": "/technologies/eslint/eslint-plugin/api/documents/overview", - "name": "Overview", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "The `enforce-module-boundaries` rule", - "path": "/technologies/eslint/eslint-plugin/api/documents/enforce-module-boundaries", - "name": "The `enforce-module-boundaries` rule", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "The `dependency-checks` rule", - "path": "/technologies/eslint/eslint-plugin/api/documents/dependency-checks", - "name": "The `dependency-checks` rule", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, { "id": "migrations", "path": "/technologies/eslint/eslint-plugin/api/migrations", @@ -4758,6 +4724,22 @@ "id": "recipes", "isExternal": false, "children": [ + { + "name": "Storybook best practices for making the most out of Nx", + "path": "/technologies/test-tools/storybook/recipes/best-practices", + "id": "best-practices", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Storybook 7", + "path": "/technologies/test-tools/storybook/recipes/storybook-7-setup", + "id": "storybook-7-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, { "name": "Set up Storybook for React Projects", "path": "/technologies/test-tools/storybook/recipes/overview-react", @@ -4871,39 +4853,6 @@ "id": "api", "isExternal": false, "children": [ - { - "id": "documents", - "path": "/technologies/test-tools/storybook/api/documents", - "name": "documents", - "children": [ - { - "id": "Overview", - "path": "/technologies/test-tools/storybook/api/documents/overview", - "name": "Overview", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "Storybook best practices for making the most out of Nx", - "path": "/technologies/test-tools/storybook/api/documents/best-practices", - "name": "Storybook best practices for making the most out of Nx", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "Storybook 7", - "path": "/technologies/test-tools/storybook/api/documents/storybook-7-setup", - "name": "Storybook 7", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, { "id": "executors", "path": "/technologies/test-tools/storybook/api/executors", @@ -7444,47 +7393,6 @@ "path": "/nx-api/angular", "name": "angular", "children": [ - { - "id": "documents", - "path": "/nx-api/angular/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/technologies/angular/api/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx and the Angular CLI", - "path": "/technologies/angular/api/documents/nx-and-angular", - "id": "nx-and-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Devkit and Angular Devkit", - "path": "/technologies/angular/api/documents/nx-devkit-angular-devkit", - "id": "nx-devkit-angular-devkit", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular and Nx Version Matrix", - "path": "/technologies/angular/api/documents/angular-nx-version-matrix", - "id": "angular-nx-version-matrix", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, { "id": "executors", "path": "/nx-api/angular/executors", @@ -8190,39 +8098,6 @@ "path": "/nx-api/eslint-plugin", "name": "eslint-plugin", "children": [ - { - "id": "documents", - "path": "/nx-api/eslint-plugin/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/technologies/eslint/eslint-plugin/api/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "The `enforce-module-boundaries` rule", - "path": "/technologies/eslint/eslint-plugin/api/documents/enforce-module-boundaries", - "id": "enforce-module-boundaries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "The `dependency-checks` rule", - "path": "/technologies/eslint/eslint-plugin/api/documents/dependency-checks", - "id": "dependency-checks", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, { "id": "migrations", "path": "/nx-api/eslint-plugin/migrations", @@ -8710,31 +8585,6 @@ "path": "/nx-api/module-federation", "name": "module-federation", "children": [ - { - "id": "documents", - "path": "/nx-api/module-federation/documents", - "name": "documents", - "children": [ - { - "name": "NxModuleFederationPlugin", - "path": "/technologies/module-federation/api/documents/nx-module-federation-plugin", - "id": "nx-module-federation-plugin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "NxModuleFederationDevServerPlugin", - "path": "/technologies/module-federation/api/documents/nx-module-federation-dev-server-plugin", - "id": "nx-module-federation-dev-server-plugin", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, { "id": "migrations", "path": "/nx-api/module-federation/migrations", @@ -10395,39 +10245,6 @@ "path": "/nx-api/storybook", "name": "storybook", "children": [ - { - "id": "documents", - "path": "/nx-api/storybook/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/technologies/test-tools/storybook/api/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook best practices for making the most out of Nx", - "path": "/technologies/test-tools/storybook/api/documents/best-practices", - "id": "best-practices", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook 7", - "path": "/technologies/test-tools/storybook/api/documents/storybook-7-setup", - "id": "storybook-7-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, { "id": "executors", "path": "/nx-api/storybook/executors", diff --git a/docs/generated/manifests/new-nx-api.json b/docs/generated/manifests/new-nx-api.json index 84114e4d6d..780302ab48 100644 --- a/docs/generated/manifests/new-nx-api.json +++ b/docs/generated/manifests/new-nx-api.json @@ -4,52 +4,7 @@ "name": "angular", "packageName": "@nx/angular", "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "documents": { - "/technologies/angular/api/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/technologies/angular/api/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/angular/angular-plugin" - }, - "/technologies/angular/api/documents/nx-and-angular": { - "id": "nx-and-angular", - "name": "Nx and the Angular CLI", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/nx-and-angular", - "itemList": [], - "isExternal": false, - "path": "/technologies/angular/api/documents/nx-and-angular", - "tags": [], - "originalFilePath": "shared/guides/nx-and-angular-cli" - }, - "/technologies/angular/api/documents/nx-devkit-angular-devkit": { - "id": "nx-devkit-angular-devkit", - "name": "Nx Devkit and Angular Devkit", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/nx-devkit-angular-devkit", - "itemList": [], - "isExternal": false, - "path": "/technologies/angular/api/documents/nx-devkit-angular-devkit", - "tags": ["create-your-own-plugin"], - "originalFilePath": "shared/guides/nx-devkit-angular-devkit" - }, - "/technologies/angular/api/documents/angular-nx-version-matrix": { - "id": "angular-nx-version-matrix", - "name": "Angular and Nx Version Matrix", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/angular-nx-version-matrix", - "itemList": [], - "isExternal": false, - "path": "/technologies/angular/api/documents/angular-nx-version-matrix", - "tags": [], - "originalFilePath": "shared/packages/angular/angular-nx-version-matrix" - } - }, + "documents": {}, "root": "/packages/angular", "source": "/packages/angular/src", "executors": { @@ -1761,41 +1716,7 @@ "name": "eslint-plugin", "packageName": "@nx/eslint-plugin", "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "documents": { - "/technologies/eslint/eslint-plugin/api/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/technologies/eslint/eslint-plugin/api/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/eslint/eslint-plugin" - }, - "/technologies/eslint/eslint-plugin/api/documents/enforce-module-boundaries": { - "id": "enforce-module-boundaries", - "name": "The `enforce-module-boundaries` rule", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/enforce-module-boundaries", - "itemList": [], - "isExternal": false, - "path": "/technologies/eslint/eslint-plugin/api/documents/enforce-module-boundaries", - "tags": [], - "originalFilePath": "shared/packages/eslint/enforce-module-boundaries" - }, - "/technologies/eslint/eslint-plugin/api/documents/dependency-checks": { - "id": "dependency-checks", - "name": "The `dependency-checks` rule", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/dependency-checks", - "itemList": [], - "isExternal": false, - "path": "/technologies/eslint/eslint-plugin/api/documents/dependency-checks", - "tags": [], - "originalFilePath": "shared/packages/eslint/dependency-checks" - } - }, + "documents": {}, "root": "/packages/eslint-plugin", "source": "/packages/eslint-plugin/src", "executors": {}, @@ -2498,30 +2419,7 @@ "name": "module-federation", "packageName": "@nx/module-federation", "description": "The Nx Plugin for Module Federation contains executors and utilities that support building applications using Module Federation.", - "documents": { - "/technologies/module-federation/api/documents/nx-module-federation-plugin": { - "id": "nx-module-federation-plugin", - "name": "NxModuleFederationPlugin", - "description": "The Nx Plugin for Module Federation contains executors and utilities that support building applications using Module Federation.", - "file": "generated/packages/module-federation/documents/nx-module-federation-plugin", - "itemList": [], - "isExternal": false, - "path": "/technologies/module-federation/api/documents/nx-module-federation-plugin", - "tags": [], - "originalFilePath": "shared/packages/module-federation/nx-module-federation-plugin" - }, - "/technologies/module-federation/api/documents/nx-module-federation-dev-server-plugin": { - "id": "nx-module-federation-dev-server-plugin", - "name": "NxModuleFederationDevServerPlugin", - "description": "The Nx Plugin for Module Federation contains executors and utilities that support building applications using Module Federation.", - "file": "generated/packages/module-federation/documents/nx-module-federation-dev-server-plugin", - "itemList": [], - "isExternal": false, - "path": "/technologies/module-federation/api/documents/nx-module-federation-dev-server-plugin", - "tags": [], - "originalFilePath": "shared/packages/module-federation/nx-module-federation-dev-server-plugin" - } - }, + "documents": {}, "root": "/packages/module-federation", "source": "/packages/module-federation/src", "executors": {}, @@ -4766,41 +4664,7 @@ "name": "storybook", "packageName": "@nx/storybook", "description": "The Nx Plugin for Storybook contains executors and generators for allowing your workspace to use the powerful Storybook integration testing & documenting capabilities.", - "documents": { - "/technologies/test-tools/storybook/api/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace.", - "file": "generated/packages/storybook/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/technologies/test-tools/storybook/api/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/storybook/plugin-overview" - }, - "/technologies/test-tools/storybook/api/documents/best-practices": { - "id": "best-practices", - "name": "Storybook best practices for making the most out of Nx", - "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", - "file": "generated/packages/storybook/documents/best-practices", - "itemList": [], - "isExternal": false, - "path": "/technologies/test-tools/storybook/api/documents/best-practices", - "tags": [], - "originalFilePath": "shared/packages/storybook/best-practices" - }, - "/technologies/test-tools/storybook/api/documents/storybook-7-setup": { - "id": "storybook-7-setup", - "name": "Storybook 7", - "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", - "file": "generated/packages/storybook/documents/storybook-7-setup", - "itemList": [], - "isExternal": false, - "path": "/technologies/test-tools/storybook/api/documents/storybook-7-setup", - "tags": [], - "originalFilePath": "shared/packages/storybook/storybook-7-setup" - } - }, + "documents": {}, "root": "/packages/storybook", "source": "/packages/storybook/src", "executors": { diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json index 25af4aa087..a2be9ff5a9 100644 --- a/docs/generated/manifests/nx.json +++ b/docs/generated/manifests/nx.json @@ -3538,6 +3538,39 @@ "isExternal": false, "path": "/technologies/angular/recipes/setup-incremental-builds-angular", "tags": [] + }, + { + "id": "nx-and-angular", + "name": "Nx and the Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-and-angular-cli", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/nx-and-angular", + "tags": [] + }, + { + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/nx-devkit-angular-devkit", + "tags": ["create-your-own-plugin"] + }, + { + "id": "angular-nx-version-matrix", + "name": "Angular and Nx Version Matrix", + "description": "", + "mediaImage": "", + "file": "shared/packages/angular/angular-nx-version-matrix", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/angular-nx-version-matrix", + "tags": [] } ], "isExternal": false, @@ -4428,6 +4461,28 @@ "isExternal": false, "path": "/technologies/module-federation/recipes/federate-a-module", "tags": [] + }, + { + "id": "nx-module-federation-plugin", + "name": "NxModuleFederationPlugin", + "description": "", + "mediaImage": "", + "file": "shared/packages/module-federation/nx-module-federation-plugin", + "itemList": [], + "isExternal": false, + "path": "/technologies/module-federation/recipes/nx-module-federation-plugin", + "tags": [] + }, + { + "id": "nx-module-federation-dev-server-plugin", + "name": "NxModuleFederationDevServerPlugin", + "description": "", + "mediaImage": "", + "file": "shared/packages/module-federation/nx-module-federation-dev-server-plugin", + "itemList": [], + "isExternal": false, + "path": "/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin", + "tags": [] } ], "isExternal": false, @@ -4520,6 +4575,40 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "recipes", + "name": "Guides", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "enforce-module-boundaries", + "name": "The enforce-module-boundaries rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries", + "tags": [] + }, + { + "id": "dependency-checks", + "name": "The dependency-checks rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/dependency-checks", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/dependency-checks", + "tags": [] + } + ], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes", + "tags": [] + }, { "id": "api", "name": "API", @@ -5059,6 +5148,28 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "best-practices", + "name": "Storybook best practices for making the most out of Nx", + "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", + "mediaImage": "", + "file": "shared/packages/storybook/best-practices", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/best-practices", + "tags": [] + }, + { + "id": "storybook-7-setup", + "name": "Storybook 7", + "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", + "mediaImage": "", + "file": "shared/packages/storybook/storybook-7-setup", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/storybook-7-setup", + "tags": [] + }, { "id": "overview-react", "name": "Set up Storybook for React Projects", @@ -5636,6 +5747,39 @@ "isExternal": false, "path": "/technologies/angular/recipes/setup-incremental-builds-angular", "tags": [] + }, + { + "id": "nx-and-angular", + "name": "Nx and the Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-and-angular-cli", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/nx-and-angular", + "tags": [] + }, + { + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/nx-devkit-angular-devkit", + "tags": ["create-your-own-plugin"] + }, + { + "id": "angular-nx-version-matrix", + "name": "Angular and Nx Version Matrix", + "description": "", + "mediaImage": "", + "file": "shared/packages/angular/angular-nx-version-matrix", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/angular-nx-version-matrix", + "tags": [] } ], "isExternal": false, @@ -5899,6 +6043,39 @@ "isExternal": false, "path": "/technologies/angular/recipes/setup-incremental-builds-angular", "tags": [] + }, + { + "id": "nx-and-angular", + "name": "Nx and the Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-and-angular-cli", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/nx-and-angular", + "tags": [] + }, + { + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/nx-devkit-angular-devkit", + "tags": ["create-your-own-plugin"] + }, + { + "id": "angular-nx-version-matrix", + "name": "Angular and Nx Version Matrix", + "description": "", + "mediaImage": "", + "file": "shared/packages/angular/angular-nx-version-matrix", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/angular-nx-version-matrix", + "tags": [] } ], "isExternal": false, @@ -5960,6 +6137,39 @@ "path": "/technologies/angular/recipes/setup-incremental-builds-angular", "tags": [] }, + "/technologies/angular/recipes/nx-and-angular": { + "id": "nx-and-angular", + "name": "Nx and the Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-and-angular-cli", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/nx-and-angular", + "tags": [] + }, + "/technologies/angular/recipes/nx-devkit-angular-devkit": { + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/nx-devkit-angular-devkit", + "tags": ["create-your-own-plugin"] + }, + "/technologies/angular/recipes/angular-nx-version-matrix": { + "id": "angular-nx-version-matrix", + "name": "Angular and Nx Version Matrix", + "description": "", + "mediaImage": "", + "file": "shared/packages/angular/angular-nx-version-matrix", + "itemList": [], + "isExternal": false, + "path": "/technologies/angular/recipes/angular-nx-version-matrix", + "tags": [] + }, "/technologies/angular/api": { "id": "api", "name": "API", @@ -7964,6 +8174,28 @@ "isExternal": false, "path": "/technologies/module-federation/recipes/federate-a-module", "tags": [] + }, + { + "id": "nx-module-federation-plugin", + "name": "NxModuleFederationPlugin", + "description": "", + "mediaImage": "", + "file": "shared/packages/module-federation/nx-module-federation-plugin", + "itemList": [], + "isExternal": false, + "path": "/technologies/module-federation/recipes/nx-module-federation-plugin", + "tags": [] + }, + { + "id": "nx-module-federation-dev-server-plugin", + "name": "NxModuleFederationDevServerPlugin", + "description": "", + "mediaImage": "", + "file": "shared/packages/module-federation/nx-module-federation-dev-server-plugin", + "itemList": [], + "isExternal": false, + "path": "/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin", + "tags": [] } ], "isExternal": false, @@ -8158,6 +8390,28 @@ "isExternal": false, "path": "/technologies/module-federation/recipes/federate-a-module", "tags": [] + }, + { + "id": "nx-module-federation-plugin", + "name": "NxModuleFederationPlugin", + "description": "", + "mediaImage": "", + "file": "shared/packages/module-federation/nx-module-federation-plugin", + "itemList": [], + "isExternal": false, + "path": "/technologies/module-federation/recipes/nx-module-federation-plugin", + "tags": [] + }, + { + "id": "nx-module-federation-dev-server-plugin", + "name": "NxModuleFederationDevServerPlugin", + "description": "", + "mediaImage": "", + "file": "shared/packages/module-federation/nx-module-federation-dev-server-plugin", + "itemList": [], + "isExternal": false, + "path": "/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin", + "tags": [] } ], "isExternal": false, @@ -8197,6 +8451,28 @@ "path": "/technologies/module-federation/recipes/federate-a-module", "tags": [] }, + "/technologies/module-federation/recipes/nx-module-federation-plugin": { + "id": "nx-module-federation-plugin", + "name": "NxModuleFederationPlugin", + "description": "", + "mediaImage": "", + "file": "shared/packages/module-federation/nx-module-federation-plugin", + "itemList": [], + "isExternal": false, + "path": "/technologies/module-federation/recipes/nx-module-federation-plugin", + "tags": [] + }, + "/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin": { + "id": "nx-module-federation-dev-server-plugin", + "name": "NxModuleFederationDevServerPlugin", + "description": "", + "mediaImage": "", + "file": "shared/packages/module-federation/nx-module-federation-dev-server-plugin", + "itemList": [], + "isExternal": false, + "path": "/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin", + "tags": [] + }, "/technologies/module-federation/api": { "id": "api", "name": "API", @@ -8278,6 +8554,40 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "recipes", + "name": "Guides", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "enforce-module-boundaries", + "name": "The enforce-module-boundaries rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries", + "tags": [] + }, + { + "id": "dependency-checks", + "name": "The dependency-checks rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/dependency-checks", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/dependency-checks", + "tags": [] + } + ], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes", + "tags": [] + }, { "id": "api", "name": "API", @@ -8384,6 +8694,40 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "recipes", + "name": "Guides", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "enforce-module-boundaries", + "name": "The enforce-module-boundaries rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries", + "tags": [] + }, + { + "id": "dependency-checks", + "name": "The dependency-checks rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/dependency-checks", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/dependency-checks", + "tags": [] + } + ], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes", + "tags": [] + }, { "id": "api", "name": "API", @@ -8400,6 +8744,62 @@ "path": "/technologies/eslint/eslint-plugin", "tags": [] }, + "/technologies/eslint/eslint-plugin/recipes": { + "id": "recipes", + "name": "Guides", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "enforce-module-boundaries", + "name": "The enforce-module-boundaries rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries", + "tags": [] + }, + { + "id": "dependency-checks", + "name": "The dependency-checks rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/dependency-checks", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/dependency-checks", + "tags": [] + } + ], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes", + "tags": [] + }, + "/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries": { + "id": "enforce-module-boundaries", + "name": "The enforce-module-boundaries rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries", + "tags": [] + }, + "/technologies/eslint/eslint-plugin/recipes/dependency-checks": { + "id": "dependency-checks", + "name": "The dependency-checks rule", + "description": "", + "mediaImage": "", + "file": "shared/packages/eslint/dependency-checks", + "itemList": [], + "isExternal": false, + "path": "/technologies/eslint/eslint-plugin/recipes/dependency-checks", + "tags": [] + }, "/technologies/eslint/eslint-plugin/api": { "id": "api", "name": "API", @@ -9500,6 +9900,28 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "best-practices", + "name": "Storybook best practices for making the most out of Nx", + "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", + "mediaImage": "", + "file": "shared/packages/storybook/best-practices", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/best-practices", + "tags": [] + }, + { + "id": "storybook-7-setup", + "name": "Storybook 7", + "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", + "mediaImage": "", + "file": "shared/packages/storybook/storybook-7-setup", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/storybook-7-setup", + "tags": [] + }, { "id": "overview-react", "name": "Set up Storybook for React Projects", @@ -10074,6 +10496,28 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "best-practices", + "name": "Storybook best practices for making the most out of Nx", + "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", + "mediaImage": "", + "file": "shared/packages/storybook/best-practices", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/best-practices", + "tags": [] + }, + { + "id": "storybook-7-setup", + "name": "Storybook 7", + "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", + "mediaImage": "", + "file": "shared/packages/storybook/storybook-7-setup", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/storybook-7-setup", + "tags": [] + }, { "id": "overview-react", "name": "Set up Storybook for React Projects", @@ -10256,6 +10700,28 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "best-practices", + "name": "Storybook best practices for making the most out of Nx", + "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", + "mediaImage": "", + "file": "shared/packages/storybook/best-practices", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/best-practices", + "tags": [] + }, + { + "id": "storybook-7-setup", + "name": "Storybook 7", + "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", + "mediaImage": "", + "file": "shared/packages/storybook/storybook-7-setup", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/storybook-7-setup", + "tags": [] + }, { "id": "overview-react", "name": "Set up Storybook for React Projects", @@ -10404,6 +10870,28 @@ "path": "/technologies/test-tools/storybook/recipes", "tags": [] }, + "/technologies/test-tools/storybook/recipes/best-practices": { + "id": "best-practices", + "name": "Storybook best practices for making the most out of Nx", + "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", + "mediaImage": "", + "file": "shared/packages/storybook/best-practices", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/best-practices", + "tags": [] + }, + "/technologies/test-tools/storybook/recipes/storybook-7-setup": { + "id": "storybook-7-setup", + "name": "Storybook 7", + "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", + "mediaImage": "", + "file": "shared/packages/storybook/storybook-7-setup", + "itemList": [], + "isExternal": false, + "path": "/technologies/test-tools/storybook/recipes/storybook-7-setup", + "tags": [] + }, "/technologies/test-tools/storybook/recipes/overview-react": { "id": "overview-react", "name": "Set up Storybook for React Projects", diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index 187b53f175..635abd2569 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -1098,6 +1098,13 @@ "name": "What Are Nx Plugins", "path": "/concepts/nx-plugins" }, + { + "description": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "path": "/technologies/angular/recipes/nx-devkit-angular-devkit" + }, { "description": "", "file": "shared/recipes/plugins/migration-generators", @@ -1139,13 +1146,6 @@ "id": "nx-devkit-angular-devkit", "name": "Nx Devkit and Angular Devkit", "path": "/nx-api/angular/documents/nx-devkit-angular-devkit" - }, - { - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/nx-devkit-angular-devkit", - "id": "nx-devkit-angular-devkit", - "name": "Nx Devkit and Angular Devkit", - "path": "/technologies/angular/api/documents/nx-devkit-angular-devkit" } ], "daemon": [ diff --git a/docs/generated/packages/angular/documents/nx-and-angular.md b/docs/generated/packages/angular/documents/nx-and-angular.md index 16a7cc95a1..565ca077fe 100644 --- a/docs/generated/packages/angular/documents/nx-and-angular.md +++ b/docs/generated/packages/angular/documents/nx-and-angular.md @@ -192,7 +192,7 @@ What's the difference? - Fix migrations that "almost work". - Commit a partially migrated state. - Change versions of packages to match org requirements. -- [Opt out of Angular updates when updating Nx versions](/recipes/tips-n-tricks/advanced-update#choosing-optional-package-updates-to-apply) as long as [the Angular version is still supported](/nx-api/angular/documents/angular-nx-version-matrix) +- [Opt out of Angular updates when updating Nx versions](/recipes/tips-n-tricks/advanced-update#choosing-optional-package-updates-to-apply) as long as [the Angular version is still supported](/technologies/angular/recipes/angular-nx-version-matrix) `nx migrate` does this by splitting the process into two steps. `nx migrate latest` creates a `migrations.json` file with a list of all the migrations needed by Nx, Angular, and other packages. You can then modify that file before running `nx migrate --run-migrations` to execute those migrations. diff --git a/docs/generated/packages/eslint-plugin/documents/overview.md b/docs/generated/packages/eslint-plugin/documents/overview.md index 7920ce3e62..3813479ab4 100644 --- a/docs/generated/packages/eslint-plugin/documents/overview.md +++ b/docs/generated/packages/eslint-plugin/documents/overview.md @@ -55,8 +55,8 @@ You can also use `@nx/react` which includes all three `@nx/react-*` plugins ### Enforce Module Boundaries rule -The `enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps prevent unplanned cross-dependencies. Read more about it on a [dedicated page](/nx-api/eslint-plugin/documents/enforce-module-boundaries). +The `enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps prevent unplanned cross-dependencies. Read more about it on a [dedicated page](/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries). ### Dependency Checks rule -The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project actually depends on. Read more about it on a [dedicated page](/nx-api/eslint-plugin/documents/dependency-checks). +The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project actually depends on. Read more about it on a [dedicated page](/technologies/eslint/eslint-plugin/recipes/dependency-checks). diff --git a/docs/generated/packages/storybook/documents/overview.md b/docs/generated/packages/storybook/documents/overview.md index 8b0cd67713..f06c2c3b4c 100644 --- a/docs/generated/packages/storybook/documents/overview.md +++ b/docs/generated/packages/storybook/documents/overview.md @@ -242,4 +242,4 @@ For more on using Storybook, see the [official Storybook documentation](https:// Here's more information on common migration scenarios for Storybook with Nx. For Storybook specific migrations that are not automatically handled by Nx please refer to the [official Storybook page](https://storybook.js.org/) - [Storybook 7 migration generator](/nx-api/storybook/generators/migrate-7) -- [Storybook 7 setup guide](/nx-api/storybook/documents/storybook-7-setup) +- [Storybook 7 setup guide](/technologies/test-tools/storybook/recipes/best-practices) diff --git a/docs/generated/packages/storybook/generators/migrate-7.json b/docs/generated/packages/storybook/generators/migrate-7.json index af968b1faf..d8f4696f68 100644 --- a/docs/generated/packages/storybook/generators/migrate-7.json +++ b/docs/generated/packages/storybook/generators/migrate-7.json @@ -34,7 +34,7 @@ "default": false } }, - "examplesFile": "---\ntitle: Storybook 7 Migration Generator Examples\ndescription: This page contains examples for the @nx/storybook:migrate-7 generator.\n---\n\n{% callout type=\"info\" title=\"Setting up Storybook 7 in a new workspace\" %}\nFor setting up Storybook version 7 in a new Nx workspace, or a workspace that does NOT already have Storybook configured already, please refer to our [Storybook 7 setup guide](/nx-api/storybook/documents/storybook-7-setup).\n{% /callout %}\n\nStorybook 7 is a major release that brings a lot of new features and improvements. You can read more about it in the [Storybook 7.0.0 release article](https://storybook.js.org/blog/storybook-7-0/). Apart from the new features and improvements it introduces, it also brings some breaking changes. You can read more about them in the [Storybook 7 migration docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#from-version-65x-to-700) and the [Storybook 7.0.0 migration guide](https://storybook.js.org/docs/react/migration-guide).\n\nYou can now migrate your existing Nx workspace with Storybook configuration to use Storybook version 7. To help you, Nx offers the `@nx/storybook:migrate-7` generator. This generator will help you migrate your existing Storybook setup to version 7.\n\n## How to use it\n\nJust call:\n\n```bash\nnpx nx g @nx/storybook:migrate-7\n```\n\n{% callout type=\"warning\" title=\"Commit your changes\" %}\nIt is advised that you start with a clean git history before running this generator, since it is going to be making lots of changes to your workspace.\n{% /callout %}\n\nYou can run this generator using the above command, without passing any options. This will start the migration process for all your projects that have Storybook configured. The logs will explain what is happening in every step, and the logs are mixed Nx and Storybook CLI logs. During the process you will be prompted by the Storybook CLI to accept the automigration scripts. You can read more about that in the next section.\n\nWhen the generator finishes, you will see a summary of the changes that were made to your workspace, and it will also create a new file, called `storybook-migration-summary.md` at the root of your project, which will contain a list of all the changes that were made to your workspace.\n\n### Accept the automigration prompts\n\nThe Storybook CLI (running through our generator) will prompt you to run some code generators and modifiers.\n\nYou can say `yes` to these prompts, which are usually the following (there may be more or less, depending on your setup,\nand depending on the latest versions of the Storybook CLI - this code is NOT managed by Nx, but by Storybook):\n\n- `mainjsFramework`: It will try to add the `framework` field in your project's `.storybook/main.js|ts` file.\n- `eslintPlugin`: installs the `eslint-plugin-storybook`\n- `newFrameworks`: removes unused dependencies (eg. `@storybook/builder-webpack5`, `@storybook/manager-webpack5`, `@storybook/builder-vite`)\n- `autodocsTrue`: adds `autodocs: true` to your project's `.storybook/main.js|ts` file\n\n### Check the result\n\nOnce the generator finishes, and the Storybook CLI automigration scripts have run, you should check the result. Examples of migrated `.storybook/main.js|ts` files would look like this:\n\n#### Full example for Angular projects\n\nHere is an example of a project-level `.storybook/main.js|ts` file for an Angular project that has been migrated to Storybook version 7:\n\n```ts {% fileName=\"apps/my-angular-app/.storybook/main.js\" %}\nconst config = {\n stories: ['../src/app/**/*.stories.@(js|jsx|ts|tsx|mdx)'],\n addons: ['@storybook/addon-essentials'],\n framework: {\n name: '@storybook/angular',\n options: {},\n },\n};\n\nexport default config;\n```\n\n#### Full example for React projects with Vite\n\nHere is an example of a project-level `.storybook/main.js|ts` file for a React project using Vite that has been migrated to Storybook version 7:\n\n```ts {% fileName=\"apps/my-react-app/.storybook/main.js\" %}\nconst config = {\n stories: ['../src/app/**/*.stories.@(js|jsx|ts|tsx|mdx)'],\n addons: ['@storybook/addon-essentials'],\n framework: {\n name: '@storybook/react-vite',\n options: {\n builder: {\n viteConfigPath: 'apps/rv1/vite.config.ts',\n },\n },\n },\n};\n\nexport default config;\n```\n\n### Make sure that all works by running Storybook\n\nYou can now use Storybook 7! 🎉\n\n```bash\nnpx nx build-storybook PROJECT_NAME\n```\n\nand\n\n```bash\nnpx nx storybook PROJECT_NAME\n```\n\n## Run the generator by automatically accepting the Storybook CLI prompts\n\nYou can run the generator with the `--autoAcceptAllPrompts` flag, which will automatically accept all the Storybook CLI prompts. This is useful if you want to run the generator in a CI environment, or if you want to run the generator in a script. Or if you are sure that you want to accept all the prompts!\n\n```bash\nnpx nx g @nx/storybook:migrate-7 --autoAcceptAllPrompts\n```\n\nThe Storybook CLI may still ask you about some things, but mostly it should just run the whole migration suite uninterrupted.\n\n## Run the migration manually\n\nNx gives you the ability to run all the migration steps one by one, manually, but still with the help of our migrator. To help you out with the commands that you need to run, Nx will print out the instructions if you run the generator with the `--onlyShowListOfCommands` flag, like this:\n\n```bash\nnpx nx g @nx/storybook:migrate-7 --onlyShowListOfCommands\n```\n\nEssentially, the way to run the migration manually is the following:\n\n1. Call the Nx generator to show you the list of commands:\n `npx nx g @nx/storybook:migrate-7 --onlyShowListOfCommands`\n2. Call the Storybook upgrade script:\n `npx storybook@latest upgrade`\n3. Call the Nx generator to prepare your files for migration. The steps are explained in [Step 02](#step-02) above.\n `nx g @nx/storybook:migrate-7 --onlyPrepare`\n4. Call the Storybook automigrate scripts for each one of the projects using Storybook (the `@nx/storybook:migrate-7` will give you the list of all the commands)\n5. Call the Nx generator to finish the migration. The steps are explained in [Step 04](#step-04) above.\n `nx g @nx/storybook:migrate-7 --afterMigration`\n\n## How the generator works under the hood\n\nNow let's see how the `@nx/storybook:migrate-7` generator works under the hood. It essentially does the following things:\n\n### Step 01\n\nIt calls the Storybook CLI upgrade script:\n\n```bash\nnpx storybook@latest upgrade\n```\n\nThis script will upgrade your Storybook dependencies to the latest version, as explained in the [Storybook documentation](https://storybook.js.org/docs/7.0/react/configure/upgrading).\n\n### Step 02\n\nIt prepares all your project-level `.storybook/main.js|ts` files, so that\nthe Storybook automigration scripts can run successfully. This means that it makes the following adjustments to your files:\n\n- Remove the \"`as StorybookConfig`\" typecast from the `.storybook/main.ts` files, if you have any `.storybook/main.ts` files with typecast, since it is not needed any more\n- Remove the \"`path.resolve`\" calls from the Next.js Storybook configuration in project-level `.storybook/main.js|ts` files, if it exists, since it breaks the Storybook automigration scripts\n\n### Step 03\n\nIt calls the Storybook CLI automigrate script, for each one of your projects that have Storybook configured. It does that by passing the `--config-dir` flag and the `--renderer` flag, for each one of your projects that has Storybook configured. An example command would look like this:\n\n```bash\nnpx storybook@latest automigrate --config-dir apps/my-react-app/.storybook --renderer @storybook/react\n```\n\nThis script will make changes to your Storybook configuration files, and other changes to your repository, to make it work for Storybook 7, as explained in the [Storybook documentation](https://storybook.js.org/docs/7.0/react/configure/upgrading).\n\n### Step 04\n\nAfter the Storybook CLI automigrate scripts have run, some additional adjustments are made to your workspace, to make sure that everything is working as expected. These adjustments are as follows:\n\n- Remove the \"`vite-tsconfig-paths`\" plugin from the Storybook configuration files for Vite projects, since it's no longer needed in v7\n- Add the \"`viteConfigPath`\" option to the Storybook builder options for Vite projects, since now Storybook needs the path to the Vite config file\n- Change the import package for the `StorybookConfig` type to be framework specific (e.g. from `@storybook/common` to `@storybook/react-vite` for React projects using Vite)\n- Add the \"`lit`\" package to your workspace, if you are using Web Components\n- Remove the \"`uiFramework`\" option from your project's Storybook targets\n\nOur generator is based on the guide to migration using the Storybook CLI, sp please refer to the [Storybook 7 migration guide](https://chromatic-ui.notion.site/Storybook-7-migration-guide-dbf41fa347304eb2a5e9c69b34503937) for more information.\n\n## I am not on Nx 15.9.0 yet but I still want to migrate to Storybook 7\n\nYou can migrate to Storybook 7 by just using the [Storybook `upgrade` and `automigrate` scripts](https://storybook.js.org/docs/7.0/react/configure/upgrading), but you will have to manually point the `automigrate` script to each one of your projects using Storybook, explained in [Step 03](#step-03) above.\n\nFirst, you would have to run the `npx storybook@latest upgrade` to get the latest versions of all the `@storybook/*` packages. Then, for each one of your projects that use Storybook, you would have to run `npx storybook@latest automigrate --config-dir /.storybook --renderer @storybook/`.\n\nThe `@nx/storybook:migrate-7` generator helps you by figuring out all the project paths and the renderers that need to be passed in the `automigrate` script, and also by performing a number of adjustments to your code to make sure the migration scripts run smoothly, so it is recommended to use the generator instead of running the scripts manually.\n\n## Report any issues and bugs\n\nPlease report any issues and bugs you find [on the Nx GitHub page](https://github.com/nrwl/nx/issues/new/choose) or on the [Storybook GitHub page](https://github.com/storybookjs/storybook/issues/new/choose).\n", + "examplesFile": "---\ntitle: Storybook 7 Migration Generator Examples\ndescription: This page contains examples for the @nx/storybook:migrate-7 generator.\n---\n\n{% callout type=\"info\" title=\"Setting up Storybook 7 in a new workspace\" %}\nFor setting up Storybook version 7 in a new Nx workspace, or a workspace that does NOT already have Storybook configured already, please refer to our [Storybook 7 setup guide](/technologies/test-tools/storybook/recipes/best-practices).\n{% /callout %}\n\nStorybook 7 is a major release that brings a lot of new features and improvements. You can read more about it in the [Storybook 7.0.0 release article](https://storybook.js.org/blog/storybook-7-0/). Apart from the new features and improvements it introduces, it also brings some breaking changes. You can read more about them in the [Storybook 7 migration docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#from-version-65x-to-700) and the [Storybook 7.0.0 migration guide](https://storybook.js.org/docs/react/migration-guide).\n\nYou can now migrate your existing Nx workspace with Storybook configuration to use Storybook version 7. To help you, Nx offers the `@nx/storybook:migrate-7` generator. This generator will help you migrate your existing Storybook setup to version 7.\n\n## How to use it\n\nJust call:\n\n```bash\nnpx nx g @nx/storybook:migrate-7\n```\n\n{% callout type=\"warning\" title=\"Commit your changes\" %}\nIt is advised that you start with a clean git history before running this generator, since it is going to be making lots of changes to your workspace.\n{% /callout %}\n\nYou can run this generator using the above command, without passing any options. This will start the migration process for all your projects that have Storybook configured. The logs will explain what is happening in every step, and the logs are mixed Nx and Storybook CLI logs. During the process you will be prompted by the Storybook CLI to accept the automigration scripts. You can read more about that in the next section.\n\nWhen the generator finishes, you will see a summary of the changes that were made to your workspace, and it will also create a new file, called `storybook-migration-summary.md` at the root of your project, which will contain a list of all the changes that were made to your workspace.\n\n### Accept the automigration prompts\n\nThe Storybook CLI (running through our generator) will prompt you to run some code generators and modifiers.\n\nYou can say `yes` to these prompts, which are usually the following (there may be more or less, depending on your setup,\nand depending on the latest versions of the Storybook CLI - this code is NOT managed by Nx, but by Storybook):\n\n- `mainjsFramework`: It will try to add the `framework` field in your project's `.storybook/main.js|ts` file.\n- `eslintPlugin`: installs the `eslint-plugin-storybook`\n- `newFrameworks`: removes unused dependencies (eg. `@storybook/builder-webpack5`, `@storybook/manager-webpack5`, `@storybook/builder-vite`)\n- `autodocsTrue`: adds `autodocs: true` to your project's `.storybook/main.js|ts` file\n\n### Check the result\n\nOnce the generator finishes, and the Storybook CLI automigration scripts have run, you should check the result. Examples of migrated `.storybook/main.js|ts` files would look like this:\n\n#### Full example for Angular projects\n\nHere is an example of a project-level `.storybook/main.js|ts` file for an Angular project that has been migrated to Storybook version 7:\n\n```ts {% fileName=\"apps/my-angular-app/.storybook/main.js\" %}\nconst config = {\n stories: ['../src/app/**/*.stories.@(js|jsx|ts|tsx|mdx)'],\n addons: ['@storybook/addon-essentials'],\n framework: {\n name: '@storybook/angular',\n options: {},\n },\n};\n\nexport default config;\n```\n\n#### Full example for React projects with Vite\n\nHere is an example of a project-level `.storybook/main.js|ts` file for a React project using Vite that has been migrated to Storybook version 7:\n\n```ts {% fileName=\"apps/my-react-app/.storybook/main.js\" %}\nconst config = {\n stories: ['../src/app/**/*.stories.@(js|jsx|ts|tsx|mdx)'],\n addons: ['@storybook/addon-essentials'],\n framework: {\n name: '@storybook/react-vite',\n options: {\n builder: {\n viteConfigPath: 'apps/rv1/vite.config.ts',\n },\n },\n },\n};\n\nexport default config;\n```\n\n### Make sure that all works by running Storybook\n\nYou can now use Storybook 7! 🎉\n\n```bash\nnpx nx build-storybook PROJECT_NAME\n```\n\nand\n\n```bash\nnpx nx storybook PROJECT_NAME\n```\n\n## Run the generator by automatically accepting the Storybook CLI prompts\n\nYou can run the generator with the `--autoAcceptAllPrompts` flag, which will automatically accept all the Storybook CLI prompts. This is useful if you want to run the generator in a CI environment, or if you want to run the generator in a script. Or if you are sure that you want to accept all the prompts!\n\n```bash\nnpx nx g @nx/storybook:migrate-7 --autoAcceptAllPrompts\n```\n\nThe Storybook CLI may still ask you about some things, but mostly it should just run the whole migration suite uninterrupted.\n\n## Run the migration manually\n\nNx gives you the ability to run all the migration steps one by one, manually, but still with the help of our migrator. To help you out with the commands that you need to run, Nx will print out the instructions if you run the generator with the `--onlyShowListOfCommands` flag, like this:\n\n```bash\nnpx nx g @nx/storybook:migrate-7 --onlyShowListOfCommands\n```\n\nEssentially, the way to run the migration manually is the following:\n\n1. Call the Nx generator to show you the list of commands:\n `npx nx g @nx/storybook:migrate-7 --onlyShowListOfCommands`\n2. Call the Storybook upgrade script:\n `npx storybook@latest upgrade`\n3. Call the Nx generator to prepare your files for migration. The steps are explained in [Step 02](#step-02) above.\n `nx g @nx/storybook:migrate-7 --onlyPrepare`\n4. Call the Storybook automigrate scripts for each one of the projects using Storybook (the `@nx/storybook:migrate-7` will give you the list of all the commands)\n5. Call the Nx generator to finish the migration. The steps are explained in [Step 04](#step-04) above.\n `nx g @nx/storybook:migrate-7 --afterMigration`\n\n## How the generator works under the hood\n\nNow let's see how the `@nx/storybook:migrate-7` generator works under the hood. It essentially does the following things:\n\n### Step 01\n\nIt calls the Storybook CLI upgrade script:\n\n```bash\nnpx storybook@latest upgrade\n```\n\nThis script will upgrade your Storybook dependencies to the latest version, as explained in the [Storybook documentation](https://storybook.js.org/docs/7.0/react/configure/upgrading).\n\n### Step 02\n\nIt prepares all your project-level `.storybook/main.js|ts` files, so that\nthe Storybook automigration scripts can run successfully. This means that it makes the following adjustments to your files:\n\n- Remove the \"`as StorybookConfig`\" typecast from the `.storybook/main.ts` files, if you have any `.storybook/main.ts` files with typecast, since it is not needed any more\n- Remove the \"`path.resolve`\" calls from the Next.js Storybook configuration in project-level `.storybook/main.js|ts` files, if it exists, since it breaks the Storybook automigration scripts\n\n### Step 03\n\nIt calls the Storybook CLI automigrate script, for each one of your projects that have Storybook configured. It does that by passing the `--config-dir` flag and the `--renderer` flag, for each one of your projects that has Storybook configured. An example command would look like this:\n\n```bash\nnpx storybook@latest automigrate --config-dir apps/my-react-app/.storybook --renderer @storybook/react\n```\n\nThis script will make changes to your Storybook configuration files, and other changes to your repository, to make it work for Storybook 7, as explained in the [Storybook documentation](https://storybook.js.org/docs/7.0/react/configure/upgrading).\n\n### Step 04\n\nAfter the Storybook CLI automigrate scripts have run, some additional adjustments are made to your workspace, to make sure that everything is working as expected. These adjustments are as follows:\n\n- Remove the \"`vite-tsconfig-paths`\" plugin from the Storybook configuration files for Vite projects, since it's no longer needed in v7\n- Add the \"`viteConfigPath`\" option to the Storybook builder options for Vite projects, since now Storybook needs the path to the Vite config file\n- Change the import package for the `StorybookConfig` type to be framework specific (e.g. from `@storybook/common` to `@storybook/react-vite` for React projects using Vite)\n- Add the \"`lit`\" package to your workspace, if you are using Web Components\n- Remove the \"`uiFramework`\" option from your project's Storybook targets\n\nOur generator is based on the guide to migration using the Storybook CLI, sp please refer to the [Storybook 7 migration guide](https://chromatic-ui.notion.site/Storybook-7-migration-guide-dbf41fa347304eb2a5e9c69b34503937) for more information.\n\n## I am not on Nx 15.9.0 yet but I still want to migrate to Storybook 7\n\nYou can migrate to Storybook 7 by just using the [Storybook `upgrade` and `automigrate` scripts](https://storybook.js.org/docs/7.0/react/configure/upgrading), but you will have to manually point the `automigrate` script to each one of your projects using Storybook, explained in [Step 03](#step-03) above.\n\nFirst, you would have to run the `npx storybook@latest upgrade` to get the latest versions of all the `@storybook/*` packages. Then, for each one of your projects that use Storybook, you would have to run `npx storybook@latest automigrate --config-dir /.storybook --renderer @storybook/`.\n\nThe `@nx/storybook:migrate-7` generator helps you by figuring out all the project paths and the renderers that need to be passed in the `automigrate` script, and also by performing a number of adjustments to your code to make sure the migration scripts run smoothly, so it is recommended to use the generator instead of running the scripts manually.\n\n## Report any issues and bugs\n\nPlease report any issues and bugs you find [on the Nx GitHub page](https://github.com/nrwl/nx/issues/new/choose) or on the [Storybook GitHub page](https://github.com/storybookjs/storybook/issues/new/choose).\n", "presets": [] }, "description": "Migrate to Storybook version 7.", diff --git a/docs/map.json b/docs/map.json index 533bce60f2..f00f7606ce 100644 --- a/docs/map.json +++ b/docs/map.json @@ -818,6 +818,22 @@ "name": "Setup incremental builds for Angular applications", "id": "setup-incremental-builds-angular", "file": "shared/guides/setup-incremental-builds-angular" + }, + { + "name": "Nx and the Angular CLI", + "id": "nx-and-angular", + "file": "shared/guides/nx-and-angular-cli" + }, + { + "name": "Nx Devkit and Angular Devkit", + "id": "nx-devkit-angular-devkit", + "tags": ["create-your-own-plugin"], + "file": "shared/guides/nx-devkit-angular-devkit" + }, + { + "name": "Angular and Nx Version Matrix", + "id": "angular-nx-version-matrix", + "file": "shared/packages/angular/angular-nx-version-matrix" } ] }, @@ -1260,6 +1276,16 @@ "name": "How to Federate a Module", "description": "A guide on how to federate a module in your Nx workspace", "file": "shared/recipes/module-federation/federate-a-module" + }, + { + "name": "NxModuleFederationPlugin", + "id": "nx-module-federation-plugin", + "file": "shared/packages/module-federation/nx-module-federation-plugin" + }, + { + "name": "NxModuleFederationDevServerPlugin", + "id": "nx-module-federation-dev-server-plugin", + "file": "shared/packages/module-federation/nx-module-federation-dev-server-plugin" } ] }, @@ -1306,6 +1332,22 @@ "name": "ESLint Plugin", "id": "eslint-plugin", "itemList": [ + { + "name": "Guides", + "id": "recipes", + "itemList": [ + { + "id": "enforce-module-boundaries", + "name": "The enforce-module-boundaries rule", + "file": "shared/packages/eslint/enforce-module-boundaries" + }, + { + "id": "dependency-checks", + "name": "The dependency-checks rule", + "file": "shared/packages/eslint/dependency-checks" + } + ] + }, { "name": "API", "id": "api", @@ -1563,6 +1605,18 @@ "name": "Guides", "id": "recipes", "itemList": [ + { + "id": "best-practices", + "name": "Storybook best practices for making the most out of Nx", + "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", + "file": "shared/packages/storybook/best-practices" + }, + { + "id": "storybook-7-setup", + "name": "Storybook 7", + "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", + "file": "shared/packages/storybook/storybook-7-setup" + }, { "name": "Set up Storybook for React Projects", "id": "overview-react", diff --git a/docs/shared/guides/nx-and-angular-cli.md b/docs/shared/guides/nx-and-angular-cli.md index 16a7cc95a1..565ca077fe 100644 --- a/docs/shared/guides/nx-and-angular-cli.md +++ b/docs/shared/guides/nx-and-angular-cli.md @@ -192,7 +192,7 @@ What's the difference? - Fix migrations that "almost work". - Commit a partially migrated state. - Change versions of packages to match org requirements. -- [Opt out of Angular updates when updating Nx versions](/recipes/tips-n-tricks/advanced-update#choosing-optional-package-updates-to-apply) as long as [the Angular version is still supported](/nx-api/angular/documents/angular-nx-version-matrix) +- [Opt out of Angular updates when updating Nx versions](/recipes/tips-n-tricks/advanced-update#choosing-optional-package-updates-to-apply) as long as [the Angular version is still supported](/technologies/angular/recipes/angular-nx-version-matrix) `nx migrate` does this by splitting the process into two steps. `nx migrate latest` creates a `migrations.json` file with a list of all the migrations needed by Nx, Angular, and other packages. You can then modify that file before running `nx migrate --run-migrations` to execute those migrations. diff --git a/docs/shared/migration/migration-angular.md b/docs/shared/migration/migration-angular.md index 9f798bb93c..f3bed18b7c 100644 --- a/docs/shared/migration/migration-angular.md +++ b/docs/shared/migration/migration-angular.md @@ -240,7 +240,7 @@ Once the script has run, commit the changes. Reverting this commit will effectiv {% cards cols="1" mdCols="3" smCols="3" lgCols="3" %} -{% card title="Nx and the Angular CLI" description="Differences between Nx and the Angular CLI" type="documentation" url="/nx-api/angular/documents/nx-and-angular" /%} +{% card title="Nx and the Angular CLI" description="Differences between Nx and the Angular CLI" type="documentation" url="/technologies/angular/recipes/nx-and-angular" /%} {% card title="Multiple Angular Repositories to one Nx Workspace" description="Combine multiple Angular CLI workspaces into one Nx workspace" type="documentation" url="technologies/angular/migration/angular-multiple" /%} diff --git a/docs/shared/packages/eslint/eslint-plugin.md b/docs/shared/packages/eslint/eslint-plugin.md index 7920ce3e62..3813479ab4 100644 --- a/docs/shared/packages/eslint/eslint-plugin.md +++ b/docs/shared/packages/eslint/eslint-plugin.md @@ -55,8 +55,8 @@ You can also use `@nx/react` which includes all three `@nx/react-*` plugins ### Enforce Module Boundaries rule -The `enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps prevent unplanned cross-dependencies. Read more about it on a [dedicated page](/nx-api/eslint-plugin/documents/enforce-module-boundaries). +The `enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps prevent unplanned cross-dependencies. Read more about it on a [dedicated page](/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries). ### Dependency Checks rule -The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project actually depends on. Read more about it on a [dedicated page](/nx-api/eslint-plugin/documents/dependency-checks). +The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project actually depends on. Read more about it on a [dedicated page](/technologies/eslint/eslint-plugin/recipes/dependency-checks). diff --git a/docs/shared/packages/storybook/plugin-overview.md b/docs/shared/packages/storybook/plugin-overview.md index 8b0cd67713..f06c2c3b4c 100644 --- a/docs/shared/packages/storybook/plugin-overview.md +++ b/docs/shared/packages/storybook/plugin-overview.md @@ -242,4 +242,4 @@ For more on using Storybook, see the [official Storybook documentation](https:// Here's more information on common migration scenarios for Storybook with Nx. For Storybook specific migrations that are not automatically handled by Nx please refer to the [official Storybook page](https://storybook.js.org/) - [Storybook 7 migration generator](/nx-api/storybook/generators/migrate-7) -- [Storybook 7 setup guide](/nx-api/storybook/documents/storybook-7-setup) +- [Storybook 7 setup guide](/technologies/test-tools/storybook/recipes/best-practices) diff --git a/docs/shared/recipes/storybook/configuring-storybook.md b/docs/shared/recipes/storybook/configuring-storybook.md index 680de72b67..3926f059e0 100644 --- a/docs/shared/recipes/storybook/configuring-storybook.md +++ b/docs/shared/recipes/storybook/configuring-storybook.md @@ -6,7 +6,7 @@ description: This guide explains how Storybook is configured on your Nx workspac # Configuring Storybook on Nx {% callout type="info" title="Best practices" %} -Read our [Using Storybook in a Nx workspace - Best practices](/nx-api/storybook/documents/best-practices) guide! +Read our [Using Storybook in a Nx workspace - Best practices](/technologies/test-tools/storybook/recipes/best-practices) guide! {% /callout %} Nx does not generate a root Storybook directory and shared root Storybook configurations. Instead, it only generates a Storybook configuration for each project in your workspace. You may still manually create a root Storybook configuration file, if it is needed for your use case. @@ -30,4 +30,4 @@ If you need to create a root Storybook configuration file, you can do so by crea You can read all our guides for configuring Storybook in our [Storybook documents page](/nx-api/storybook/documents). -Please also make sure to read our [Using Storybook in a Nx workspace - Best practices](/nx-api/storybook/documents/best-practices) guide, where you can find some best practices for using Storybook in a Nx workspace. +Please also make sure to read our [Using Storybook in a Nx workspace - Best practices](/technologies/test-tools/storybook/recipes/best-practices) guide, where you can find some best practices for using Storybook in a Nx workspace. diff --git a/docs/shared/recipes/storybook/one-storybook-for-all.md b/docs/shared/recipes/storybook/one-storybook-for-all.md index f289eacb78..d8e41cf91f 100644 --- a/docs/shared/recipes/storybook/one-storybook-for-all.md +++ b/docs/shared/recipes/storybook/one-storybook-for-all.md @@ -6,7 +6,7 @@ description: Dive into a comprehensive guide on how to consolidate all your Stor # Publishing Storybook: One main Storybook instance for all projects This guide extends the -[Using Storybook in a Nx workspace - Best practices](/nx-api/storybook/documents/best-practices) guide. In that guide, we discussed the best practices of using Storybook in a Nx workspace. We explained the main concepts and the mental model of how to best set up Storybook. In this guide, we are going to see how to put that into practice, by looking at a real-world example. We are going to see how you can publish one single Storybook for your workspace. +[Using Storybook in a Nx workspace - Best practices](/technologies/test-tools/storybook/recipes/best-practices) guide. In that guide, we discussed the best practices of using Storybook in a Nx workspace. We explained the main concepts and the mental model of how to best set up Storybook. In this guide, we are going to see how to put that into practice, by looking at a real-world example. We are going to see how you can publish one single Storybook for your workspace. This case would work if all your projects (applications and libraries) containing stories that you want to use are using the same framework (Angular, React, Vue, etc). The reason is that you will be importing the stories in a central host Storybook's `.storybook/main.ts`, and we will be using one specific builder to build that Storybook. Storybook does not support mixing frameworks in the same Storybook instance. diff --git a/docs/shared/recipes/storybook/one-storybook-per-scope.md b/docs/shared/recipes/storybook/one-storybook-per-scope.md index 7d6076a816..23fbbb0e12 100644 --- a/docs/shared/recipes/storybook/one-storybook-per-scope.md +++ b/docs/shared/recipes/storybook/one-storybook-per-scope.md @@ -6,7 +6,7 @@ description: Learn how to set up individual Storybook instances for each scope w # Publishing Storybook: One Storybook instance per scope This guide extends the -[Using Storybook in a Nx workspace - Best practices](/nx-api/storybook/documents/best-practices) guide. In that guide, we discussed the best practices of using Storybook in a Nx workspace. We explained the main concepts and the mental model of how to best set up Storybook. In this guide, we are going to see how to put that into practice, by looking at a real-world example. We are going to see how you can publish one Storybook per scope (eg. theme, app, framework) for your workspace. +[Using Storybook in a Nx workspace - Best practices](/technologies/test-tools/storybook/recipes/best-practices) guide. In that guide, we discussed the best practices of using Storybook in a Nx workspace. We explained the main concepts and the mental model of how to best set up Storybook. In this guide, we are going to see how to put that into practice, by looking at a real-world example. We are going to see how you can publish one Storybook per scope (eg. theme, app, framework) for your workspace. Sometimes, you have multiple apps and libraries, and each of these is associated with a specific scope. You can read more about grouping libraries and scoping them in the [Library Types](/concepts/decisions/project-dependency-rules) documentation page. diff --git a/docs/shared/recipes/storybook/one-storybook-with-composition.md b/docs/shared/recipes/storybook/one-storybook-with-composition.md index b92a87c1ea..bca779d820 100644 --- a/docs/shared/recipes/storybook/one-storybook-with-composition.md +++ b/docs/shared/recipes/storybook/one-storybook-with-composition.md @@ -6,7 +6,7 @@ description: Dive into the comprehensive guide on publishing a unified Storybook # Publishing Storybook: One main Storybook instance using Storybook Composition This guide extends the -[Using Storybook in a Nx workspace - Best practices](/nx-api/storybook/documents/best-practices) guide. In that guide, we discussed the best practices of using Storybook in a Nx workspace. We explained the main concepts and the mental model of how to best set up Storybook. In this guide, we are going to see how to put that into practice, by looking at a real-world example. We are going to see how you can publish one single Storybook for your workspace, even you are using multiple frameworks, taking advantage of [Storybook Composition](/technologies/test-tools/storybook/recipes/storybook-composition-setup). +[Using Storybook in a Nx workspace - Best practices](/technologies/test-tools/storybook/recipes/best-practices) guide. In that guide, we discussed the best practices of using Storybook in a Nx workspace. We explained the main concepts and the mental model of how to best set up Storybook. In this guide, we are going to see how to put that into practice, by looking at a real-world example. We are going to see how you can publish one single Storybook for your workspace, even you are using multiple frameworks, taking advantage of [Storybook Composition](/technologies/test-tools/storybook/recipes/storybook-composition-setup). In this case, we are dealing with a Nx workspace that uses multiple frameworks. Essentially, you would need to have one Storybook host for each of the frameworks, containing all the stories of that specific framework, since the Storybook builder can not handle multiple frameworks simultaneously. diff --git a/docs/shared/recipes/storybook/plugin-angular.md b/docs/shared/recipes/storybook/plugin-angular.md index c464b02176..a70f7530d1 100644 --- a/docs/shared/recipes/storybook/plugin-angular.md +++ b/docs/shared/recipes/storybook/plugin-angular.md @@ -187,5 +187,5 @@ For more on using Storybook, see the [official Storybook documentation](https:// Here's more information on common migration scenarios for Storybook with Nx. For Storybook specific migrations that are not automatically handled by Nx please refer to the [official Storybook page](https://storybook.js.org/) -- [Set up Storybook version 7](/nx-api/storybook/documents/storybook-7-setup) +- [Set up Storybook version 7](/technologies/test-tools/storybook/recipes/storybook-7-setup) - [Migrate to Storybook version 7](/nx-api/storybook/generators/migrate-7) diff --git a/docs/shared/recipes/storybook/plugin-react.md b/docs/shared/recipes/storybook/plugin-react.md index f879d13c43..fb0a6b45c8 100644 --- a/docs/shared/recipes/storybook/plugin-react.md +++ b/docs/shared/recipes/storybook/plugin-react.md @@ -147,5 +147,5 @@ For more on using Storybook, see the [official Storybook documentation](https:// Here's more information on common migration scenarios for Storybook with Nx. For Storybook specific migrations that are not automatically handled by Nx please refer to the [official Storybook page](https://storybook.js.org/) -- [Set up Storybook version 7](/nx-api/storybook/documents/storybook-7-setup) +- [Set up Storybook version 7](/technologies/test-tools/storybook/recipes/storybook-7-setup) - [Migrate to Storybook version 7](/nx-api/storybook/generators/migrate-7) diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index 8ececfe122..29a21b1eac 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -145,12 +145,10 @@ - [Setup Module Federation with SSR for Angular](/technologies/angular/recipes/module-federation-with-ssr) - [Advanced Micro Frontends with Angular using Dynamic Federation](/technologies/angular/recipes/dynamic-module-federation-with-angular) - [Setup incremental builds for Angular applications](/technologies/angular/recipes/setup-incremental-builds-angular) + - [Nx and the Angular CLI](/technologies/angular/recipes/nx-and-angular) + - [Nx Devkit and Angular Devkit](/technologies/angular/recipes/nx-devkit-angular-devkit) + - [Angular and Nx Version Matrix](/technologies/angular/recipes/angular-nx-version-matrix) - [API](/technologies/angular/api) - - [documents](/technologies/angular/api/documents) - - [Overview](/technologies/angular/api/documents/overview) - - [Nx and the Angular CLI](/technologies/angular/api/documents/nx-and-angular) - - [Nx Devkit and Angular Devkit](/technologies/angular/api/documents/nx-devkit-angular-devkit) - - [Angular and Nx Version Matrix](/technologies/angular/api/documents/angular-nx-version-matrix) - [executors](/technologies/angular/api/executors) - [delegate-build](/technologies/angular/api/executors/delegate-build) - [ng-packagr-lite](/technologies/angular/api/executors/ng-packagr-lite) @@ -424,10 +422,9 @@ - [How to create a Module Federation Host Application](/technologies/module-federation/recipes/create-a-host) - [How to create a Module Federation Remote Application](/technologies/module-federation/recipes/create-a-remote) - [How to Federate a Module](/technologies/module-federation/recipes/federate-a-module) + - [NxModuleFederationPlugin](/technologies/module-federation/recipes/nx-module-federation-plugin) + - [NxModuleFederationDevServerPlugin](/technologies/module-federation/recipes/nx-module-federation-dev-server-plugin) - [API](/technologies/module-federation/api) - - [documents](/technologies/module-federation/api/documents) - - [NxModuleFederationPlugin](/technologies/module-federation/api/documents/nx-module-federation-plugin) - - [NxModuleFederationDevServerPlugin](/technologies/module-federation/api/documents/nx-module-federation-dev-server-plugin) - [migrations](/technologies/module-federation/api/migrations) - [ESLint](/technologies/eslint) - [Introduction](/technologies/eslint/introduction) @@ -445,11 +442,10 @@ - [convert-to-inferred](/technologies/eslint/api/generators/convert-to-inferred) - [migrations](/technologies/eslint/api/migrations) - [ESLint Plugin](/technologies/eslint/eslint-plugin) + - [Guides](/technologies/eslint/eslint-plugin/recipes) + - [The enforce-module-boundaries rule](/technologies/eslint/eslint-plugin/recipes/enforce-module-boundaries) + - [The dependency-checks rule](/technologies/eslint/eslint-plugin/recipes/dependency-checks) - [API](/technologies/eslint/eslint-plugin/api) - - [documents](/technologies/eslint/eslint-plugin/api/documents) - - [Overview](/technologies/eslint/eslint-plugin/api/documents/overview) - - [The `enforce-module-boundaries` rule](/technologies/eslint/eslint-plugin/api/documents/enforce-module-boundaries) - - [The `dependency-checks` rule](/technologies/eslint/eslint-plugin/api/documents/dependency-checks) - [migrations](/technologies/eslint/eslint-plugin/api/migrations) - [Build Tools](/technologies/build-tools) - [Webpack](/technologies/build-tools/webpack) @@ -574,6 +570,8 @@ - [Storybook](/technologies/test-tools/storybook) - [Introduction](/technologies/test-tools/storybook/introduction) - [Guides](/technologies/test-tools/storybook/recipes) + - [Storybook best practices for making the most out of Nx](/technologies/test-tools/storybook/recipes/best-practices) + - [Storybook 7](/technologies/test-tools/storybook/recipes/storybook-7-setup) - [Set up Storybook for React Projects](/technologies/test-tools/storybook/recipes/overview-react) - [Set up Storybook for Angular Projects](/technologies/test-tools/storybook/recipes/overview-angular) - [Set up Storybook for Vue Projects](/technologies/test-tools/storybook/recipes/overview-vue) @@ -588,10 +586,6 @@ - [Angular: Set up Compodoc for Storybook on Nx](/technologies/test-tools/storybook/recipes/angular-storybook-compodoc) - [Angular: Configuring styles and preprocessor options](/technologies/test-tools/storybook/recipes/angular-configuring-styles) - [API](/technologies/test-tools/storybook/api) - - [documents](/technologies/test-tools/storybook/api/documents) - - [Overview](/technologies/test-tools/storybook/api/documents/overview) - - [Storybook best practices for making the most out of Nx](/technologies/test-tools/storybook/api/documents/best-practices) - - [Storybook 7](/technologies/test-tools/storybook/api/documents/storybook-7-setup) - [executors](/technologies/test-tools/storybook/api/executors) - [storybook](/technologies/test-tools/storybook/api/executors/storybook) - [build](/technologies/test-tools/storybook/api/executors/build) @@ -900,11 +894,6 @@ - Nx-api - [angular](/nx-api/angular) - - [documents](/nx-api/angular/documents) - - [Overview](/technologies/angular/api/documents/overview) - - [Nx and the Angular CLI](/technologies/angular/api/documents/nx-and-angular) - - [Nx Devkit and Angular Devkit](/technologies/angular/api/documents/nx-devkit-angular-devkit) - - [Angular and Nx Version Matrix](/technologies/angular/api/documents/angular-nx-version-matrix) - [executors](/nx-api/angular/executors) - [delegate-build](/nx-api/angular/executors/delegate-build) - [ng-packagr-lite](/nx-api/angular/executors/ng-packagr-lite) @@ -991,7 +980,6 @@ - [convert-to-inferred](/nx-api/eslint/generators/convert-to-inferred) - [migrations](/nx-api/eslint/migrations) - [eslint-plugin](/nx-api/eslint-plugin) - - [documents](/nx-api/eslint-plugin/documents) - [Overview](/technologies/eslint/eslint-plugin/api/documents/overview) - [The `enforce-module-boundaries` rule](/technologies/eslint/eslint-plugin/api/documents/enforce-module-boundaries) - [The `dependency-checks` rule](/technologies/eslint/eslint-plugin/api/documents/dependency-checks) - [migrations](/nx-api/eslint-plugin/migrations) - [expo](/nx-api/expo) - [executors](/nx-api/expo/executors) @@ -1051,9 +1039,6 @@ - [setup-prettier](/nx-api/js/generators/setup-prettier) - [migrations](/nx-api/js/migrations) - [module-federation](/nx-api/module-federation) - - [documents](/nx-api/module-federation/documents) - - [NxModuleFederationPlugin](/technologies/module-federation/api/documents/nx-module-federation-plugin) - - [NxModuleFederationDevServerPlugin](/technologies/module-federation/api/documents/nx-module-federation-dev-server-plugin) - [migrations](/nx-api/module-federation/migrations) - [nest](/nx-api/nest) - [generators](/nx-api/nest/generators) @@ -1257,7 +1242,6 @@ - [convert-to-inferred](/nx-api/rspack/generators/convert-to-inferred) - [migrations](/nx-api/rspack/migrations) - [storybook](/nx-api/storybook) - - [documents](/nx-api/storybook/documents) - [Overview](/technologies/test-tools/storybook/api/documents/overview) - [Storybook best practices for making the most out of Nx](/technologies/test-tools/storybook/api/documents/best-practices) - [Storybook 7](/technologies/test-tools/storybook/api/documents/storybook-7-setup) - [executors](/nx-api/storybook/executors) - [storybook](/nx-api/storybook/executors/storybook) - [build](/nx-api/storybook/executors/build) diff --git a/docs/shared/tutorials/angular-monorepo.md b/docs/shared/tutorials/angular-monorepo.md index 0da5919ccc..f1fff4eb3c 100644 --- a/docs/shared/tutorials/angular-monorepo.md +++ b/docs/shared/tutorials/angular-monorepo.md @@ -23,11 +23,11 @@ Advantages of Nx over the Angular CLI: - [Cache any target](/features/cache-task-results) - [Run only tasks affected by a code change](/ci/features/affected) -- [Split a large angular.json into multiple project.json files](/nx-api/angular/documents/nx-and-angular#projectjson-vs-angularjson) -- [Integrate with modern tools](/nx-api/angular/documents/nx-and-angular#integrating-with-modern-tools) -- [Controllable update process](/nx-api/angular/documents/nx-and-angular#ng-update-vs-nx-migrate) +- [Split a large angular.json into multiple project.json files](/technologies/angular/recipes/nx-and-angular#projectjson-vs-angularjson) +- [Integrate with modern tools](/technologies/angular/recipes/nx-and-angular#integrating-with-modern-tools) +- [Controllable update process](/technologies/angular/recipes/nx-and-angular#ng-update-vs-nx-migrate) -Visit our ["Nx and the Angular CLI" page](/nx-api/angular/documents/nx-and-angular) for more details. +Visit our ["Nx and the Angular CLI" page](/technologies/angular/recipes/nx-and-angular) for more details. ## Final Code @@ -1334,7 +1334,7 @@ For more information about how Nx can improve your CI pipeline, check out one of Here's some things you can dive into next: -- Read more about [how Nx compares to the Angular CLI](/nx-api/angular/documents/nx-and-angular) +- Read more about [how Nx compares to the Angular CLI](/technologies/angular/recipes/nx-and-angular) - Learn more about the [underlying mental model of Nx](/concepts/mental-model) - Learn about popular generators such as [how to setup Tailwind](/technologies/angular/recipes/using-tailwind-css-with-angular-projects) - Learn how to [migrate your existing Angular CLI repo to Nx](technologies/angular/migration/angular) diff --git a/nx-dev/models-document/src/lib/mappings.ts b/nx-dev/models-document/src/lib/mappings.ts index 99aab7c6b3..66286b554c 100644 --- a/nx-dev/models-document/src/lib/mappings.ts +++ b/nx-dev/models-document/src/lib/mappings.ts @@ -19,8 +19,6 @@ export const pkgToGeneratedApiDocs: Record< // angular angular: { pagePath: '/technologies/angular/api', - // TODO(docs): move these to guides and remove this - includeDocuments: true, }, // react react: { @@ -84,8 +82,6 @@ export const pkgToGeneratedApiDocs: Record< }, storybook: { pagePath: '/technologies/test-tools/storybook/api', - // TODO(docs): move these to guides and remove this - includeDocuments: true, }, playwright: { pagePath: '/technologies/test-tools/playwright/api', @@ -99,16 +95,12 @@ export const pkgToGeneratedApiDocs: Record< // misc 'module-federation': { pagePath: '/technologies/module-federation/api', - // TODO(docs): move these to guides and remove this - includeDocuments: true, }, eslint: { pagePath: '/technologies/eslint/api', }, 'eslint-plugin': { pagePath: '/technologies/eslint/eslint-plugin/api', - // TODO(docs): move these to guides and remove this - includeDocuments: true, }, // core and misc // For now, things that are not in technologies are put here in references/core-api diff --git a/nx-dev/nx-dev/redirect-rules.js b/nx-dev/nx-dev/redirect-rules.js index 5429e9791b..ab103c14c6 100644 --- a/nx-dev/nx-dev/redirect-rules.js +++ b/nx-dev/nx-dev/redirect-rules.js @@ -1251,33 +1251,75 @@ const nxApiRedirects = { '/nx-api/create-nx-workspace/:slug*': '/reference/core-api/create-nx-workspace/:slug*', // Technologies + '/nx-api/angular/documents/:slug*': '/technologies/angular/recipes/:slug*', '/nx-api/angular/:slug*': '/technologies/angular/api/:slug*', + '/nx-api/react/documents/:slug*': '/technologies/react/recipes/:slug*', '/nx-api/react/:slug*': '/technologies/react/api/:slug*', + '/nx-api/react-native/documents/:slug*': + '/technologies/react/react-native/recipes/:slug*', '/nx-api/react-native/:slug*': '/technologies/react/react-native/api/:slug*', + '/nx-api/vue/documents/:slug*': '/technologies/vue/recipes/:slug*', '/nx-api/vue/:slug*': '/technologies/vue/api/:slug*', - '/nx-api/next/:slug*': '/technologies/next/api/:slug*', + '/nx-api/next/documents/:slug*': '/technologies/react/next/recipes/:slug*', + '/nx-api/next/:slug*': '/technologies/react/next/api/:slug*', + '/nx-api/remix/documents/:slug*': '/technologies/react/remix/recipes/:slug*', '/nx-api/remix/:slug*': '/technologies/react/remix/api/:slug*', + '/nx-api/nuxt/documents/:slug*': '/technologies/vue/nuxt/recipes/:slug*', '/nx-api/nuxt/:slug*': '/technologies/vue/nuxt/api/:slug*', + '/nx-api/expo/documents/:slug*': '/technologies/react/expo/recipes/:slug*', '/nx-api/expo/:slug*': '/technologies/react/expo/api/:slug*', + '/nx-api/nest/documents/:slug*': '/technologies/nest/recipes/:slug*', '/nx-api/nest/:slug*': '/technologies/nest/api/:slug*', + '/nx-api/express/documents/:slug*': + '/technologies/node/express/recipes/:slug*', '/nx-api/express/:slug*': '/technologies/node/express/api/:slug*', + '/nx-api/node/documents/:slug*': '/technologies/node/recipes/:slug*', '/nx-api/node/:slug*': '/technologies/node/api/:slug*', + '/nx-api/webpack/documents/:slug*': + '/technologies/build-tools/webpack/recipes/:slug*', '/nx-api/webpack/:slug*': '/technologies/build-tools/webpack/api/:slug*', + '/nx-api/vite/documents/:slug*': + '/technologies/build-tools/vite/recipes/:slug*', '/nx-api/vite/:slug*': '/technologies/build-tools/vite/api/:slug*', + '/nx-api/rollup/documents/:slug*': + '/technologies/build-tools/rollup/recipes/:slug*', '/nx-api/rollup/:slug*': '/technologies/build-tools/rollup/api/:slug*', + '/nx-api/esbuild/documents/:slug*': + '/technologies/build-tools/esbuild/recipes/:slug*', '/nx-api/esbuild/:slug*': '/technologies/build-tools/esbuild/api/:slug*', + '/nx-api/rspack/documents/:slug*': + '/technologies/build-tools/rspack/recipes/:slug*', '/nx-api/rspack/:slug*': '/technologies/build-tools/rspack/api/:slug*', + '/nx-api/rsbuild/documents/:slug*': + '/technologies/build-tools/rsbuild/recipes/:slug*', '/nx-api/rsbuild/:slug*': '/technologies/build-tools/rsbuild/api/:slug*', + '/nx-api/cypress/documents/:slug*': + '/technologies/build-tools/cypress/recipes/:slug*', '/nx-api/cypress/:slug*': '/technologies/build-tools/cypress/api/:slug*', + '/nx-api/jest/documents/:slug*': + '/technologies/test-tools/jest/recipes/:slug*', '/nx-api/jest/:slug*': '/technologies/test-tools/jest/api/:slug*', + '/nx-api/playwright/documents/:slug*': + '/technologies/test-tools/playwright/recipes/:slug*', '/nx-api/playwright/:slug*': '/technologies/test-tools/playwright/api/:slug*', + '/nx-api/storybook/documents/:slug*': + '/technologies/test-tools/storybook/recipes/:slug*', '/nx-api/storybook/:slug*': '/technologies/test-tools/storybook/api/:slug*', + '/nx-api/detox/documents/:slug*': + '/technologies/test-tools/detox/recipes/:slug*', '/nx-api/detox/:slug*': '/technologies/test-tools/detox/api/:slug*', + '/nx-api/js/documents/:slug*': '/technologies/typescript/recipes/:slug*', '/nx-api/js/:slug*': '/technologies/typescript/api/:slug*', + '/nx-api/gradle/documents/:slug*': '/technologies/java/recipes/:slug*', '/nx-api/gradle/:slug*': '/technologies/java/api/:slug*', + '/nx-api/eslint/documents/:slug*': '/technologies/eslint/recipes/:slug*', '/nx-api/eslint/:slug*': '/technologies/eslint/api/:slug*', + '/nx-api/eslint-plugin/documents/:slug*': + '/technologies/eslint/eslint-plugin/recipes/:slug*', '/nx-api/eslint-plugin/:slug*': '/technologies/eslint/eslint-plugin/api/:slug*', + '/nx-api/module-federation/documents/:slug*': + '/technologies/module-federation/recipes/:slug*', '/nx-api/module-federation/:slug*': '/technologies/module-federation/api/:slug*', }; diff --git a/packages/storybook/docs/migrate-7-generator-examples.md b/packages/storybook/docs/migrate-7-generator-examples.md index 5ce7aa540e..dac9343e15 100644 --- a/packages/storybook/docs/migrate-7-generator-examples.md +++ b/packages/storybook/docs/migrate-7-generator-examples.md @@ -4,7 +4,7 @@ description: This page contains examples for the @nx/storybook:migrate-7 generat --- {% callout type="info" title="Setting up Storybook 7 in a new workspace" %} -For setting up Storybook version 7 in a new Nx workspace, or a workspace that does NOT already have Storybook configured already, please refer to our [Storybook 7 setup guide](/nx-api/storybook/documents/storybook-7-setup). +For setting up Storybook version 7 in a new Nx workspace, or a workspace that does NOT already have Storybook configured already, please refer to our [Storybook 7 setup guide](/technologies/test-tools/storybook/recipes/best-practices). {% /callout %} Storybook 7 is a major release that brings a lot of new features and improvements. You can read more about it in the [Storybook 7.0.0 release article](https://storybook.js.org/blog/storybook-7-0/). Apart from the new features and improvements it introduces, it also brings some breaking changes. You can read more about them in the [Storybook 7 migration docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#from-version-65x-to-700) and the [Storybook 7.0.0 migration guide](https://storybook.js.org/docs/react/migration-guide).