diff --git a/docs/README.md b/docs/README.md index 7ad18cfe25be1..8840454b644b3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -32,7 +32,6 @@ We also have different audiences in mind when writing docs: 👦 Intermediate User - They know how to create an Nx repo or add Nx to an existing repo -- They have heard the terms integrated and package-based - They know what a project is and how to make one - They understand how to run a task and the basics of caching - They can launch the graph diff --git a/docs/blog/2023-12-28-highlights-2023.md b/docs/blog/2023-12-28-highlights-2023.md index ec40ee5467527..fa821270f7a4e 100644 --- a/docs/blog/2023-12-28-highlights-2023.md +++ b/docs/blog/2023-12-28-highlights-2023.md @@ -333,7 +333,7 @@ And obviously, we jumped on the AI train as well. A couple of months ago, we add ## New Tagline: Smart Monorepos — Fast CI -Nx stands out for its flexibility, accommodating for both monorepo and non-monorepo project structures. This approach allows users to begin with simpler project configurations, leveraging the benefits of Nx’s robust tooling, and later, when the need arises, seamlessly [migrate to a monorepo](/recipes/tips-n-tricks/standalone-to-integrated). +Nx stands out for its flexibility, accommodating for both monorepo and non-monorepo project structures. This approach allows users to begin with simpler project configurations, leveraging the benefits of Nx’s robust tooling, and later, when the need arises, seamlessly [migrate to a monorepo](/recipes/tips-n-tricks/standalone-to-monorepo). However, Nx’s true strength becomes most apparent at scale, typically within a monorepo setup. We wanted to capture it in our new tagline: **Smart Monorepos — Fast CI**. diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index 283a8d5eeed69..975e104457e4e 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -696,14 +696,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "path": "/concepts/integrated-vs-package-based", - "id": "integrated-vs-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Nx Daemon", "path": "/concepts/nx-daemon", @@ -909,14 +901,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "path": "/concepts/integrated-vs-package-based", - "id": "integrated-vs-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Nx Daemon", "path": "/concepts/nx-daemon", @@ -1859,25 +1843,9 @@ "isExternal": false, "children": [ { - "name": "Add a Package-based Project in an Integrated Repo", - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "id": "package-based-in-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add an Integrated Project in a Package-based Repo", - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "id": "integrated-in-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Convert from a Standalone Repository to an Integrated Repository", - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "id": "standalone-to-integrated", + "name": "Convert from a Standalone Repository to a Monorepo", + "path": "/recipes/tips-n-tricks/standalone-to-monorepo", + "id": "standalone-to-monorepo", "isExternal": false, "children": [], "disableCollapsible": false @@ -3441,25 +3409,9 @@ "isExternal": false, "children": [ { - "name": "Add a Package-based Project in an Integrated Repo", - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "id": "package-based-in-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add an Integrated Project in a Package-based Repo", - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "id": "integrated-in-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Convert from a Standalone Repository to an Integrated Repository", - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "id": "standalone-to-integrated", + "name": "Convert from a Standalone Repository to a Monorepo", + "path": "/recipes/tips-n-tricks/standalone-to-monorepo", + "id": "standalone-to-monorepo", "isExternal": false, "children": [], "disableCollapsible": false @@ -3588,25 +3540,9 @@ "disableCollapsible": false }, { - "name": "Add a Package-based Project in an Integrated Repo", - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "id": "package-based-in-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add an Integrated Project in a Package-based Repo", - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "id": "integrated-in-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Convert from a Standalone Repository to an Integrated Repository", - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "id": "standalone-to-integrated", + "name": "Convert from a Standalone Repository to a Monorepo", + "path": "/recipes/tips-n-tricks/standalone-to-monorepo", + "id": "standalone-to-monorepo", "isExternal": false, "children": [], "disableCollapsible": false @@ -4905,6 +4841,14 @@ "isExternal": false, "children": [], "disableCollapsible": false + }, + { + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "path": "/deprecated/integrated-vs-package-based", + "id": "integrated-vs-package-based", + "isExternal": false, + "children": [], + "disableCollapsible": false } ], "disableCollapsible": false @@ -5021,6 +4965,14 @@ "children": [], "disableCollapsible": false }, + { + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "path": "/deprecated/integrated-vs-package-based", + "id": "integrated-vs-package-based", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, { "name": "See Also", "path": "/see-also", diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json index dbe3d50412e45..223ed968c39d4 100644 --- a/docs/generated/manifests/nx.json +++ b/docs/generated/manifests/nx.json @@ -949,17 +949,6 @@ "path": "/concepts/executors-and-configurations", "tags": ["run-tasks"] }, - { - "id": "integrated-vs-package-based", - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "description": "", - "mediaImage": "", - "file": "shared/concepts/integrated-vs-package-based", - "itemList": [], - "isExternal": false, - "path": "/concepts/integrated-vs-package-based", - "tags": ["intro", "repository-types"] - }, { "id": "nx-daemon", "name": "Nx Daemon", @@ -1242,17 +1231,6 @@ "path": "/concepts/executors-and-configurations", "tags": ["run-tasks"] }, - "/concepts/integrated-vs-package-based": { - "id": "integrated-vs-package-based", - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "description": "", - "mediaImage": "", - "file": "shared/concepts/integrated-vs-package-based", - "itemList": [], - "isExternal": false, - "path": "/concepts/integrated-vs-package-based", - "tags": ["intro", "repository-types"] - }, "/concepts/nx-daemon": { "id": "nx-daemon", "name": "Nx Daemon", @@ -2539,37 +2517,15 @@ "file": "", "itemList": [ { - "id": "package-based-in-integrated", - "name": "Add a Package-based Project in an Integrated Repo", + "id": "standalone-to-monorepo", + "name": "Convert from a Standalone Repository to a Monorepo", "description": "", "mediaImage": "", - "file": "shared/recipes/repo-types/package-based-in-integrated", + "file": "shared/recipes/tips-n-tricks/standalone-to-monorepo", "itemList": [], "isExternal": false, - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "tags": ["repository-types"] - }, - { - "id": "integrated-in-package-based", - "name": "Add an Integrated Project in a Package-based Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/integrated-in-package-based", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "tags": ["repository-types"] - }, - { - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "tags": ["repository-types"] + "path": "/recipes/tips-n-tricks/standalone-to-monorepo", + "tags": [] }, { "id": "eslint", @@ -4708,37 +4664,15 @@ "file": "", "itemList": [ { - "id": "package-based-in-integrated", - "name": "Add a Package-based Project in an Integrated Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/package-based-in-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "tags": ["repository-types"] - }, - { - "id": "integrated-in-package-based", - "name": "Add an Integrated Project in a Package-based Repo", + "id": "standalone-to-monorepo", + "name": "Convert from a Standalone Repository to a Monorepo", "description": "", "mediaImage": "", - "file": "shared/recipes/repo-types/integrated-in-package-based", + "file": "shared/recipes/tips-n-tricks/standalone-to-monorepo", "itemList": [], "isExternal": false, - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "tags": ["repository-types"] - }, - { - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "tags": ["repository-types"] + "path": "/recipes/tips-n-tricks/standalone-to-monorepo", + "tags": [] }, { "id": "eslint", @@ -4910,38 +4844,16 @@ "path": "/recipes/tips-n-tricks", "tags": [] }, - "/recipes/tips-n-tricks/package-based-in-integrated": { - "id": "package-based-in-integrated", - "name": "Add a Package-based Project in an Integrated Repo", + "/recipes/tips-n-tricks/standalone-to-monorepo": { + "id": "standalone-to-monorepo", + "name": "Convert from a Standalone Repository to a Monorepo", "description": "", "mediaImage": "", - "file": "shared/recipes/repo-types/package-based-in-integrated", + "file": "shared/recipes/tips-n-tricks/standalone-to-monorepo", "itemList": [], "isExternal": false, - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "tags": ["repository-types"] - }, - "/recipes/tips-n-tricks/integrated-in-package-based": { - "id": "integrated-in-package-based", - "name": "Add an Integrated Project in a Package-based Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/integrated-in-package-based", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "tags": ["repository-types"] - }, - "/recipes/tips-n-tricks/standalone-to-integrated": { - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "tags": ["repository-types"] + "path": "/recipes/tips-n-tricks/standalone-to-monorepo", + "tags": [] }, "/recipes/tips-n-tricks/eslint": { "id": "eslint", @@ -6718,6 +6630,17 @@ "isExternal": false, "path": "/deprecated/rescope", "tags": [] + }, + { + "id": "integrated-vs-package-based", + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/integrated-vs-package-based", + "itemList": [], + "isExternal": false, + "path": "/deprecated/integrated-vs-package-based", + "tags": [] } ], "isExternal": false, @@ -6878,6 +6801,17 @@ "path": "/deprecated/rescope", "tags": [] }, + "/deprecated/integrated-vs-package-based": { + "id": "integrated-vs-package-based", + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/integrated-vs-package-based", + "itemList": [], + "isExternal": false, + "path": "/deprecated/integrated-vs-package-based", + "tags": [] + }, "/see-also": { "id": "see-also", "name": "See Also", diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index ccae057eed622..8b0d0dbce9fed 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -609,13 +609,6 @@ "id": "mental-model", "name": "Mental Model", "path": "/concepts/mental-model" - }, - { - "description": "", - "file": "shared/concepts/integrated-vs-package-based", - "id": "integrated-vs-package-based", - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "path": "/concepts/integrated-vs-package-based" } ], "inferred-tasks": [ @@ -706,36 +699,6 @@ "path": "/nx-api/angular/documents/nx-devkit-angular-devkit" } ], - "repository-types": [ - { - "description": "", - "file": "shared/concepts/integrated-vs-package-based", - "id": "integrated-vs-package-based", - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "path": "/concepts/integrated-vs-package-based" - }, - { - "description": "", - "file": "shared/recipes/repo-types/package-based-in-integrated", - "id": "package-based-in-integrated", - "name": "Add a Package-based Project in an Integrated Repo", - "path": "/recipes/tips-n-tricks/package-based-in-integrated" - }, - { - "description": "", - "file": "shared/recipes/repo-types/integrated-in-package-based", - "id": "integrated-in-package-based", - "name": "Add an Integrated Project in a Package-based Repo", - "path": "/recipes/tips-n-tricks/integrated-in-package-based" - }, - { - "description": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "path": "/recipes/tips-n-tricks/standalone-to-integrated" - } - ], "module-federation": [ { "description": "", diff --git a/docs/generated/packages/angular/documents/nx-and-angular.md b/docs/generated/packages/angular/documents/nx-and-angular.md index 92dc491058c4e..5cc3ff4708900 100644 --- a/docs/generated/packages/angular/documents/nx-and-angular.md +++ b/docs/generated/packages/angular/documents/nx-and-angular.md @@ -271,7 +271,7 @@ Nx is really made to scale with you. You can - start small with a single-project workspace - modularize your application into more fine-grained libraries for better maintainability as your application (and team) grows ([more about that here](/getting-started/tutorials/angular-standalone-tutorial#modularizing-your-angular-app-with-local-libraries)), including mechanisms to make sure [things stay within their boundaries](/features/enforce-module-boundaries) -- you can then migrate to a monorepo when you are ready and need one ([more here](/recipes/tips-n-tricks/standalone-to-integrated)) +- you can then migrate to a monorepo when you are ready and need one ([more here](/recipes/tips-n-tricks/standalone-to-monorepo)) - or even [add Webpack Module Federation support](/recipes/angular/module-federation-with-ssr) ### Visualize your Workspace diff --git a/docs/generated/packages/angular/generators/ng-add.json b/docs/generated/packages/angular/generators/ng-add.json index ba2b163a8ac81..52c9cc77223f4 100644 --- a/docs/generated/packages/angular/generators/ng-add.json +++ b/docs/generated/packages/angular/generators/ng-add.json @@ -64,7 +64,7 @@ } }, "additionalProperties": false, - "examplesFile": "## Information\n\nThis generator is usually used as part of the process of migrating from an Angular CLI Workspace to an [Nx Integrated Workspace](/concepts/integrated-vs-package-based#integrated-repos) using `npx nx@latest init --integrated`.\n\nYou can read more about [migrating from Angular CLI to Nx here](/recipes/angular/migration/angular).\n", + "examplesFile": "## Information\n\nThis generator is usually used as part of the process of migrating from an Angular CLI Workspace to an Nx monorepo using `npx nx@latest init --integrated`.\n\nYou can read more about [migrating from Angular CLI to Nx here](/recipes/angular/migration/angular).\n", "presets": [] }, "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace.", diff --git a/docs/map.json b/docs/map.json index 80142013bedf6..e05e190aa020d 100644 --- a/docs/map.json +++ b/docs/map.json @@ -264,12 +264,6 @@ "tags": ["run-tasks"], "file": "shared/concepts/executors-and-configurations" }, - { - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "tags": ["intro", "repository-types"], - "id": "integrated-vs-package-based", - "file": "shared/concepts/integrated-vs-package-based" - }, { "name": "Nx Daemon", "id": "nx-daemon", @@ -897,22 +891,9 @@ "description": "Various tips and tricks for using Nx.", "itemList": [ { - "name": "Add a Package-based Project in an Integrated Repo", - "id": "package-based-in-integrated", - "tags": ["repository-types"], - "file": "shared/recipes/repo-types/package-based-in-integrated" - }, - { - "name": "Add an Integrated Project in a Package-based Repo", - "id": "integrated-in-package-based", - "tags": ["repository-types"], - "file": "shared/recipes/repo-types/integrated-in-package-based" - }, - { - "name": "Convert from a Standalone Repository to an Integrated Repository", - "id": "standalone-to-integrated", - "tags": ["repository-types"], - "file": "shared/recipes/repo-types/standalone-to-integrated" + "name": "Convert from a Standalone Repository to a Monorepo", + "id": "standalone-to-monorepo", + "file": "shared/recipes/tips-n-tricks/standalone-to-monorepo" }, { "name": "Configuring ESLint with Typescript", @@ -1430,6 +1411,11 @@ "name": "Rescope Packages from @nrwl to @nx", "id": "rescope", "file": "shared/deprecated/rescope" + }, + { + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "id": "integrated-vs-package-based", + "file": "shared/deprecated/integrated-vs-package-based" } ] }, diff --git a/docs/shared/concepts/turbo-and-nx.md b/docs/shared/concepts/turbo-and-nx.md index a70749f00f9b1..6362c2181a90e 100644 --- a/docs/shared/concepts/turbo-and-nx.md +++ b/docs/shared/concepts/turbo-and-nx.md @@ -16,10 +16,9 @@ We are going to compare the tools in three different ways: **features**, **tech #### 1. Incremental Adoption -We should distinguish between [package-based vs integrated approach](/concepts/integrated-vs-package-based) to monorepos. Turbo uses a package-based approach to monorepos, while Nx can do both. To be able to compare the two from an incremental adoption point of view, let's focus on the package-based approach for now: +Both Turbo and Nx can be added to a repo with almost no friction. Install `turbo` and add a `turbo.json` or install `nx` and add an `nx.json`. In this initial setup, both tools enable task running and computation caching. -- Both Turbo and Nx can be added to a repo with almost no friction. Install `turbo` and add a `turbo.json` or install `nx` and add an `nx.json`. -- With Nx you have the possibility to also transition to a more [integrated monorepo style](/concepts/integrated-vs-package-based#integrated-repos) that has been proven to lead to better maintainability and DX in the long-run. +In addition, Nx allows you to incrementally enable [plugins and supporting features](#plugins-and-supporting-features) that are not available with Turborepo. Here are some examples for Nx: diff --git a/docs/shared/concepts/integrated-vs-package-based.md b/docs/shared/deprecated/integrated-vs-package-based.md similarity index 93% rename from docs/shared/concepts/integrated-vs-package-based.md rename to docs/shared/deprecated/integrated-vs-package-based.md index fb1cad7c68e17..71d17f788ccd0 100644 --- a/docs/shared/concepts/integrated-vs-package-based.md +++ b/docs/shared/deprecated/integrated-vs-package-based.md @@ -1,5 +1,11 @@ # Integrated Repos vs. Package-Based Repos vs. Standalone Apps +{% callout type="note" title="" %} +As of Nx 20, it is no longer useful to draw a distinction between integrated and package-based repositories. We've removed references to these terms in the rest of the documentation, but this page is kept here to describe the terms for historical reasons. + +Instead of using terms that classify Nx repositories into two different types, we want to highlight the fact that Nx features can be enabled independently of each other. Choose the features that make sense for your repository. +{% /callout %} + There are many different ways to structure a repository and Nx is designed to support them all. To better discuss how Nx can improve a repository, it is helpful to define some terms. - Standalone Application - A repository with a single application diff --git a/docs/shared/guides/nx-and-angular-cli.md b/docs/shared/guides/nx-and-angular-cli.md index 92dc491058c4e..5cc3ff4708900 100644 --- a/docs/shared/guides/nx-and-angular-cli.md +++ b/docs/shared/guides/nx-and-angular-cli.md @@ -271,7 +271,7 @@ Nx is really made to scale with you. You can - start small with a single-project workspace - modularize your application into more fine-grained libraries for better maintainability as your application (and team) grows ([more about that here](/getting-started/tutorials/angular-standalone-tutorial#modularizing-your-angular-app-with-local-libraries)), including mechanisms to make sure [things stay within their boundaries](/features/enforce-module-boundaries) -- you can then migrate to a monorepo when you are ready and need one ([more here](/recipes/tips-n-tricks/standalone-to-integrated)) +- you can then migrate to a monorepo when you are ready and need one ([more here](/recipes/tips-n-tricks/standalone-to-monorepo)) - or even [add Webpack Module Federation support](/recipes/angular/module-federation-with-ssr) ### Visualize your Workspace diff --git a/docs/shared/migration/adding-to-monorepo.md b/docs/shared/migration/adding-to-monorepo.md index b91d457b463a7..1a6e9e2f8c4cf 100644 --- a/docs/shared/migration/adding-to-monorepo.md +++ b/docs/shared/migration/adding-to-monorepo.md @@ -422,7 +422,4 @@ url="/reference/nxignore" /%} {% card title="Nx and Turbo" description="Read about how Nx compares to Turborepo" url=" /concepts/turbo-and-nx" /%} -{% card title="Integrated Repos vs Package-Based Repos" description="Learn about two styles of monorepos." url=" -/concepts/integrated-vs-package-based" /%} - {% /cards %} diff --git a/docs/shared/migration/from-turborepo.md b/docs/shared/migration/from-turborepo.md index 23e2c76dfebfb..c36a0a7b51354 100644 --- a/docs/shared/migration/from-turborepo.md +++ b/docs/shared/migration/from-turborepo.md @@ -1,6 +1,6 @@ # Migrate from Turborepo to Nx -If you have an existing monorepo that uses Turborepo, switching to use Nx is a straight-forward process. After switching, you'll have cleaner CLI output, a better graph view and IDE support with the option to incorporate Nx plugins and take advantage of the features of an integrated repository. All this without increasing the complexity of your configuration files. +If you have an existing monorepo that uses Turborepo, switching to use Nx is a straight-forward process. After switching, you'll have cleaner CLI output, a better graph view and IDE support with the option to incorporate [Nx plugins](/concepts/nx-plugins). All this without increasing the complexity of your configuration files. For more details, read our [comparison of Nx and Turborepo](/concepts/turbo-and-nx) diff --git a/docs/shared/migration/migration-angular.md b/docs/shared/migration/migration-angular.md index 9e7f1aed98205..e45cc985b722d 100644 --- a/docs/shared/migration/migration-angular.md +++ b/docs/shared/migration/migration-angular.md @@ -4,7 +4,7 @@ Within an Nx workspace, you gain many capabilities that help you build applicati ## Migrating to a Standalone Angular App with Nx -You can migrate to a [Standalone Angular App](/concepts/integrated-vs-package-based#standalone-applications) with the command: +You can migrate to a standalone Angular app with the command: ```shell npx nx@latest init @@ -20,9 +20,9 @@ This will enable you to use the Nx CLI in your existing Angular CLI workspace wh **Note:** The changes will be slightly different for Angular 13 and lower. -## Migrating to an Integrated Nx Monorepo +## Migrating to an Nx Monorepo -If you want to migrate your Angular CLI project to an [Integrated Nx Monorepo](/concepts/integrated-vs-package-based#integrated-repos), run the following command: +If you want to migrate your Angular CLI project to an Nx Monorepo, run the following command: ```shell npx nx@latest init --integrated diff --git a/docs/shared/plugins/organization-specific-plugin.md b/docs/shared/plugins/organization-specific-plugin.md index 5249f81a5e62a..0695fe6645e84 100644 --- a/docs/shared/plugins/organization-specific-plugin.md +++ b/docs/shared/plugins/organization-specific-plugin.md @@ -14,7 +14,7 @@ In this tutorial, we will create a generator that helps enforce the follow best Let's first create a new workspace with the `create-nx-workspace` command: ```shell -npx create-nx-workspace myorg --preset=react-integrated --ci=github +npx create-nx-workspace myorg --preset=react-monorepo --ci=github ``` Then we , install the `@nx/plugin` package and generate a plugin: diff --git a/docs/shared/recipes/module-federation-with-ssr.md b/docs/shared/recipes/module-federation-with-ssr.md index b5d1e04b4278d..711c1bb9a4143 100644 --- a/docs/shared/recipes/module-federation-with-ssr.md +++ b/docs/shared/recipes/module-federation-with-ssr.md @@ -14,7 +14,6 @@ NX Let's create a new workspace [https://nx.dev/getting-started/intro] ✔ Where would you like to create your workspace? · myorg ✔ Which stack do you want to use? · none -✔ Package-based or integrated? · integrated ✔ Do you want Nx Cloud to make your CI fast? · Yes ``` diff --git a/docs/shared/recipes/module-federation/dynamic-mfe-angular.md b/docs/shared/recipes/module-federation/dynamic-mfe-angular.md index 714933d7f365c..2ccb7e0fbf3df 100644 --- a/docs/shared/recipes/module-federation/dynamic-mfe-angular.md +++ b/docs/shared/recipes/module-federation/dynamic-mfe-angular.md @@ -45,7 +45,6 @@ To start with, we need to create a new Nx Workspace and add the Nx Angular plugi NX Let's create a new workspace [https://nx.dev/getting-started/intro] ✔ Which stack do you want to use? · none -✔ Package-based monorepo, integrated monorepo, or standalone project? · integrated ✔ Which CI provider would you like to use? · skip ✔ Would you like remote caching to make your build faster? · skip @@ -65,7 +64,6 @@ npx nx add @nx/angular NX Let's create a new workspace [https://nx.dev/getting-started/intro] ✔ Which stack do you want to use? · none -✔ Package-based monorepo, integrated monorepo, or standalone project? · integrated ✔ Which CI provider would you like to use? · skip ✔ Would you like remote caching to make your build faster? · skip @@ -85,7 +83,6 @@ yarn nx add @nx/angular NX Let's create a new workspace [https://nx.dev/getting-started/intro] ✔ Which stack do you want to use? · none -✔ Package-based monorepo, integrated monorepo, or standalone project? · integrated ✔ Which CI provider would you like to use? · skip ✔ Would you like remote caching to make your build faster? · skip diff --git a/docs/shared/recipes/repo-types/integrated-in-package-based.md b/docs/shared/recipes/repo-types/integrated-in-package-based.md deleted file mode 100644 index f20c3c5d1b0dd..0000000000000 --- a/docs/shared/recipes/repo-types/integrated-in-package-based.md +++ /dev/null @@ -1,34 +0,0 @@ -# Add an Integrated Project in a Package-based Repository - -In a package-based repository, you've intentionally opted out of some of Nx's features in order to give yourself more flexibility. If you decide to add a new project using the integrated style, the process is straight-forward. - -To add an integrated project: - -1. Install the plugin you want to use (i.e. `nx add @nx/react`) -2. Generate an application or library using that plugin (i.e. `nx g @nx/react:app`) - -The integrated project is now ready to use. Next, we'll discuss some of the changes that were applied to your codebase. - -## package.json dependencies - -All the dependencies that are required for an integrated project are maintained in the root `package.json` file. In order to use the plugin's [Automate Updating Framework Dependencies](/features/automate-updating-dependencies) feature, we recommend using a [Single Version Policy](/concepts/decisions/dependency-management#single-version-policy) for integrated projects. - -## tsconfig.base.json - -Even if the project you added only uses javascript, a `tsconfig.base.json` file is generated in the root of the repo. This file is needed for the tooling that Nx provides. Nx creates a typescript `path` alias for each library and then uses that path (rather than npm/yarn/pnpm workspaces) to allow local projects to reference the library. - -## project.json - -The project itself will have [a `project.json` file](/reference/project-configuration#project-level-configuration-files) where some tasks might be explicitly defined while other [tasks will be inferred by the plugin](/concepts/inferred-tasks) used. This can include tasks like `build`, `serve` and `test`. - -## Other Configuration Files - -Depending on the type of integrated project you created, there may be other configuration files. These could include files like `.eslintrc.json`, `jest.config.ts` and a project-level `tsconfig.json`. - -## Code Generators - -The Nx plugin you installed provides code generators that you can use to scaffold out your application quickly and in a consistent way. See [Use Code Generators](/features/generate-code) for more information. - -## Summary - -You can opt in to using Nx's integrated features on a per project basis. This allows you to experiment with the functionality to see if the value those features provide is worth giving up some of the flexibility a package-based repository gives you. diff --git a/docs/shared/recipes/repo-types/package-based-in-integrated.md b/docs/shared/recipes/repo-types/package-based-in-integrated.md deleted file mode 100644 index 7bf9f78735c32..0000000000000 --- a/docs/shared/recipes/repo-types/package-based-in-integrated.md +++ /dev/null @@ -1,83 +0,0 @@ -# Add a Package-Based Project in an Integrated Repository - -An integrated repo offers a lot of features at the cost of some flexibility, but sometimes you want to take back control of your build system or dependency management for a single project in the repo. This recipe shows you how to do that. - -A package-based project in an integrated repository is a project that has at least one of these characteristics: - -1. Maintains its own dependencies with a separate `package.json` file -2. Defines tasks in a `package.json` file that don't use Nx executors - -For this example, we'll implement all three, but you can also have a project that has only one of these characteristics and falls back to an integrated style for the others. - -## Create Your Project - -Because this is a package-based project, we won't use Nx to generate the project. We can create the project in whatever way is typical for the framework you're trying to add. This could mean using the framework's own CLI or manually adding files yourself. - -For Nx to be aware of your project, it needs: - -1. npm, yarn or pnpm workspaces set up in the root `package.json` file -2. A `package.json` file in the project folder with a `name` specified -3. Some scripts defined in the project's `package.json` file for Nx to run - -## Setup NPM/Yarn/PNPM Workspaces - -If you choose to have this project define its dependencies separately from the root `package.json` file, simply define those `dependencies` and `devDependencies` in the project's `package.json` file. - -With [npm](https://docs.npmjs.com/cli/v7/using-npm/workspaces)/[yarn](https://classic.yarnpkg.com/lang/en/docs/workspaces/)/[pnpm](https://pnpm.io/workspaces) workspaces set up, you can run the install command at the root of the repository and every project will have its dependencies installed. - -When you manage dependencies this way, you can still hoist dependencies to the root-level `package.json` file, but you have to make the explicit decision for each dependency. - -There are difficulties with code sharing when you maintain separate dependencies. See the [Dependency Management Strategies](/concepts/decisions/dependency-management) guide for more information. - -## Run Tasks Without the Use of an Nx Plugin - -Any task you define in the scripts section of the project's `package.json` can be executed by Nx. These scripts can be cached and orchestrated in the same way a `target` defined in `project.json` is. If you want to define some tasks in `project.json` and some tasks in `package.json`, Nx will read both and merge the configurations. - -A typical set up where the `test` task depends on the `build` task could look like this: - -{% tabs %} -{% tab label="package.json" %} - -```jsonc {% fileName="package.json"%} -{ - "scripts": { - "build": "tsc", - "test": "jest" - }, - "nx": { - "targets": { - "test": { - "dependsOn": ["build"] - } - } - } -} -``` - -{% /tab %} -{% tab label="project.json" %} - -```jsonc {% fileName="project.json"%} -{ - "targets": { - "build": { - "command": "tsc" - }, - "test": { - "command": "jest", - "dependsOn": ["build"] - } - } -} -``` - -{% /tab %} -{% /tabs %} - -## Updating Dependencies - -Because this is a package-based project, you'll be managing your own updates for this project. In addition, you'll need to be careful when running the `nx migrate` command on the rest of the repo. There may be times where a migration changes code in this package-based project when it shouldn't. You'll need to manually revert those changes before committing. - -## Summary - -An integrated Nx repo does not lock you into only using Nx plugins for all of your projects. You can always opt-out of using certain features and take on the responsibility of managing that functionality yourself. diff --git a/docs/shared/recipes/repo-types/standalone-to-integrated.md b/docs/shared/recipes/tips-n-tricks/standalone-to-monorepo.md similarity index 89% rename from docs/shared/recipes/repo-types/standalone-to-integrated.md rename to docs/shared/recipes/tips-n-tricks/standalone-to-monorepo.md index 8206754189f91..4e5d34e17cd69 100644 --- a/docs/shared/recipes/repo-types/standalone-to-integrated.md +++ b/docs/shared/recipes/tips-n-tricks/standalone-to-monorepo.md @@ -1,8 +1,6 @@ -# Convert from a Standalone Repository to an Integrated Repository +# Convert from a Standalone Repository to a Monorepo -In many ways, a standalone repository is an integrated repository, but with one primary app located at the root of the repository. Both types of repos use plugins to generate code and to keep dependencies and config files up to date. Both types of repos use executors to hide away unneeded complexity. - -You can always add another app to a standalone repository the same way you would in an integrated repo. But at some point, you may want to move the primary app out of the root of your repo because the repo is no longer primarily focused on that one app. There are other apps that are equally important and you want the folder structure to align with the new reality. +You can always add another app to a standalone repository the same way you would in a monorepo. But at some point, you may want to move the primary app out of the root of your repo because the repo is no longer primarily focused on that one app. There are other apps that are equally important and you want the folder structure to align with the new reality. {% youtube src="https://youtu.be/ztNpLf2Zl-c?si=u0CfLAx_tpioZ3Vu" @@ -11,7 +9,7 @@ width="100%" /%} ## Run the Generator -The `convert-to-monorepo` generator will attempt to convert a standalone repo to an integrated monorepo. +The `convert-to-monorepo` generator will attempt to convert a standalone repo to a monorepo. ```shell nx g convert-to-monorepo diff --git a/docs/shared/reference/glossary.md b/docs/shared/reference/glossary.md index 2d68fc1de4ee9..7af227d01e0ec 100644 --- a/docs/shared/reference/glossary.md +++ b/docs/shared/reference/glossary.md @@ -102,12 +102,6 @@ A computer science concept that consists of nodes connected by edges. In the Nx > See: [Explore the Graph](/features/explore-graph) -### Integrated Repository - -A repository using Nx [plugins](#plugin) to boost efficiency and ease of maintenance. - -> See: [Integrated Repos vs. Package-Based Repos](/concepts/integrated-vs-package-based) - ### Launch Template Launch Templates are used to set up an agent machine. They specify a resource class, an image and a series of set up steps before tasks are executed on that machine. @@ -154,12 +148,6 @@ Nx Replay is the product offered by [Nx Cloud](#nx-cloud) that enables [remote c A [project](#project). It is sometimes published as an npm package. -### Package-based Repository - -A repository using Nx without [plugins](#plugin) that prioritizes the independence of the separate [packages](#package). Nx is added to the repo without significantly affecting the file structure or build settings. - -> See: [Integrated Repos vs. Package-Based Repos](/concepts/integrated-vs-package-based) - ### Plugin A set of [executors](#executor), [generators](#generator) and other code that extends the functionality of Nx. May be installed from a package manager like NPM or developed directly in the repository. diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index a8d11e523af24..6ff4442395f1a 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -34,7 +34,6 @@ - [Inferred Tasks](/concepts/inferred-tasks) - [Types of Configuration](/concepts/types-of-configuration) - [Executors and Configurations](/concepts/executors-and-configurations) - - [Integrated Repos vs. Package-Based Repos vs. Standalone Apps](/concepts/integrated-vs-package-based) - [Nx Daemon](/concepts/nx-daemon) - [Sync Generators](/concepts/sync-generators) - [Nx and Turborepo](/concepts/turbo-and-nx) @@ -139,9 +138,7 @@ - [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports) - [Tags Allow List](/recipes/enforce-module-boundaries/tags-allow-list) - [Tips and tricks](/recipes/tips-n-tricks) - - [Add a Package-based Project in an Integrated Repo](/recipes/tips-n-tricks/package-based-in-integrated) - - [Add an Integrated Project in a Package-based Repo](/recipes/tips-n-tricks/integrated-in-package-based) - - [Convert from a Standalone Repository to an Integrated Repository](/recipes/tips-n-tricks/standalone-to-integrated) + - [Convert from a Standalone Repository to a Monorepo](/recipes/tips-n-tricks/standalone-to-monorepo) - [Configuring ESLint with Typescript](/recipes/tips-n-tricks/eslint) - [Enable Typescript Batch Mode](/recipes/tips-n-tricks/enable-tsc-batch-mode) - [Define Secondary Entrypoints for Typescript Packages](/recipes/tips-n-tricks/define-secondary-entrypoints) @@ -231,6 +228,7 @@ - [Angular Schematics and Builders](/deprecated/angular-schematics-builders) - [v1 Nx Plugin API](/deprecated/v1-nx-plugin-api) - [Rescope Packages from @nrwl to @nx](/deprecated/rescope) + - [Integrated Repos vs. Package-Based Repos vs. Standalone Apps](/deprecated/integrated-vs-package-based) - [See Also](/see-also) - [Site Map](/see-also/sitemap) diff --git a/docs/shared/tutorials/angular-monorepo.md b/docs/shared/tutorials/angular-monorepo.md index 0f78ac5157072..da52f643e9217 100644 --- a/docs/shared/tutorials/angular-monorepo.md +++ b/docs/shared/tutorials/angular-monorepo.md @@ -5,7 +5,7 @@ description: In this tutorial you'll create a frontend-focused workspace with Nx # Building Angular Apps in an Nx Monorepo -In this tutorial you'll learn how to use Angular with Nx in a [monorepo (integrated) setup](/concepts/integrated-vs-package-based#integrated-repos). +In this tutorial you'll learn how to use Angular with Nx in a monorepo setup. What will you learn? @@ -107,7 +107,7 @@ The setup includes: - ESLint preconfigured - Jest preconfigured -Typically, an integrated Nx workspace places application projects in the `apps` folder and library projects in the `libs` folder. Applications are encouraged to be as light-weight as possible so that more code is pushed into libraries and can be reused in other projects. This folder structure is just a suggestion and can be modified to suit your organization's needs. +One way to structure an Nx monorepo is to place application projects in the `apps` folder and library projects in the `libs` folder. Applications are encouraged to be as light-weight as possible so that more code is pushed into libraries and can be reused in other projects. This folder structure is just a suggestion and can be modified to suit your organization's needs. The [`nx.json` file](/reference/nx-json) contains configuration settings for Nx itself and global default settings that individual projects inherit. The `apps/angular-store/project.json` file contains [settings that are specific to the `angular-store` project](/reference/project-configuration). We'll examine that file more in the next section. diff --git a/docs/shared/tutorials/angular-standalone.md b/docs/shared/tutorials/angular-standalone.md index 7e9999e1fe5e4..fffd7d11f5c81 100644 --- a/docs/shared/tutorials/angular-standalone.md +++ b/docs/shared/tutorials/angular-standalone.md @@ -1,6 +1,6 @@ # Building Angular Apps with the Nx Standalone Projects Setup -In this tutorial you'll learn how to use Angular with Nx in a ["standalone" (non-monorepo) setup](/concepts/integrated-vs-package-based#standalone-applications). Not to be confused with the "Angular Standalone API", a standalone project in Nx is a non-monorepo setup where you have a single application at the root level. This setup is very similar to what the Angular CLI gives you. +In this tutorial you'll learn how to use Angular with Nx in a "standalone" (non-monorepo) setup. Not to be confused with the "Angular Standalone API", a standalone project in Nx is a non-monorepo setup where you have a single application at the root level. This setup is very similar to what the Angular CLI gives you. What will you learn? @@ -1038,7 +1038,7 @@ Learn more about how to [enforce module boundaries](/features/enforce-module-bou ## Migrating to a Monorepo -When you are ready to add another application to the repo, you'll probably want to move `myngapp` to its own folder. To do this, you can run the [`convert-to-monorepo` generator](/nx-api/workspace/generators/convert-to-monorepo) or [manually move the configuration files](/recipes/tips-n-tricks/standalone-to-integrated). +When you are ready to add another application to the repo, you'll probably want to move `myngapp` to its own folder. To do this, you can run the [`convert-to-monorepo` generator](/nx-api/workspace/generators/convert-to-monorepo) or [manually move the configuration files](/recipes/tips-n-tricks/standalone-to-monorepo). You can also go through the full [Angular monorepo tutorial](/getting-started/tutorials/angular-monorepo-tutorial) diff --git a/docs/shared/tutorials/react-monorepo.md b/docs/shared/tutorials/react-monorepo.md index 410b4db45df31..6549b9777c65d 100644 --- a/docs/shared/tutorials/react-monorepo.md +++ b/docs/shared/tutorials/react-monorepo.md @@ -5,7 +5,7 @@ description: In this tutorial you'll create a frontend-focused workspace with Nx # Building React Apps in an Nx Monorepo -In this tutorial you'll learn how to use React with Nx in a [monorepo (integrated) setup](/concepts/integrated-vs-package-based#integrated-repos). +In this tutorial you'll learn how to use React with Nx in a monorepo setup. What will you learn? @@ -19,15 +19,15 @@ What will you learn? Note, this tutorial sets up a repo with applications and libraries in their own subfolders. If you are looking for a React standalone app setup then check out our [React standalone app tutorial](/getting-started/tutorials/react-standalone-tutorial). {% /callout %} -## Why Use an Integrated Monorepo? +## Why Use an Nx Monorepo? -An integrated monorepo is a repository configured with a set of features that work together toward the goal of allowing developers to focus on building features rather than the configuration, coordination and maintenance of the tooling in the repo. +In this tutorial, we'll set up a monorepo that is configured with a set of features that work together toward the goal of allowing developers to focus on building features rather than the configuration, coordination and maintenance of the tooling in the repo. You'll notice that instead of using npm/yarn/pnpm workspaces, projects within the repository are linked using typescript path aliases that are defined in the `tsconfig.base.json` file. Also, since we're creating projects using Nx plugin generators, all new projects come preconfigured with useful tools like Prettier, ESLint and Jest. Nx Plugins are optional packages that extend the capabilities of Nx, catering to various specific technologies. For instance, we have plugins tailored to React (e.g., `@nx/react`), Vite (`@nx/vite`), Cypress (`@nx/cypress`), and more. These plugins offer additional features, making your development experience more efficient and enjoyable when working with specific tech stacks. -Features of an integrated monorepo: +Features we'll use in this monorepo: - [Install dependencies at the root by default](/concepts/decisions/dependency-management#single-version-policy) - [Scaffold new code with generators](/features/generate-code) @@ -104,7 +104,7 @@ The setup includes.. - ESLint preconfigured - Jest preconfigured -Typically, an integrated Nx workspace places application projects in the `apps` folder and library projects in the `libs` folder. Applications are encouraged to be as light-weight as possible so that more code is pushed into libraries and can be reused in other projects. This folder structure is just a suggestion and can be modified to suit your organization's needs. +One way to structure an Nx monorepo is to place application projects in the `apps` folder and library projects in the `libs` folder. Applications are encouraged to be as light-weight as possible so that more code is pushed into libraries and can be reused in other projects. This folder structure is just a suggestion and can be modified to suit your organization's needs. The [`nx.json` file](/reference/nx-json) contains configuration settings for Nx itself and global default settings that individual projects inherit. The `apps/react-store/project.json` file contains [settings that are specific to the `react-store` project](/reference/project-configuration). We'll examine that file more in the next section. diff --git a/docs/shared/tutorials/react-standalone.md b/docs/shared/tutorials/react-standalone.md index f9e9049bc3fae..6bba11840e1de 100644 --- a/docs/shared/tutorials/react-standalone.md +++ b/docs/shared/tutorials/react-standalone.md @@ -5,7 +5,7 @@ description: In this tutorial you'll create a frontend-focused workspace with Nx # Building a Single React App with Nx -In this tutorial you'll learn how to use React with Nx in a ["standalone" (non-monorepo) setup](/concepts/integrated-vs-package-based#standalone-applications). +In this tutorial you'll learn how to use React with Nx in a "standalone" (non-monorepo) setup. What will you learn? @@ -976,7 +976,7 @@ Learn more about how to [enforce module boundaries](/features/enforce-module-bou ## Migrating to a Monorepo -When you are ready to add another application to the repo, you'll probably want to move `react-app` to its own folder. To do this, you can run the [`convert-to-monorepo` generator](/nx-api/workspace/generators/convert-to-monorepo) or [manually move the configuration files](/recipes/tips-n-tricks/standalone-to-integrated). +When you are ready to add another application to the repo, you'll probably want to move `react-app` to its own folder. To do this, you can run the [`convert-to-monorepo` generator](/nx-api/workspace/generators/convert-to-monorepo) or [manually move the configuration files](/recipes/tips-n-tricks/standalone-to-monorepo). You can also go through the full [React monorepo tutorial](/getting-started/tutorials/react-monorepo-tutorial) diff --git a/docs/shared/tutorials/vue-standalone.md b/docs/shared/tutorials/vue-standalone.md index a1aa8b25fcc6f..ee6da9f81a35e 100644 --- a/docs/shared/tutorials/vue-standalone.md +++ b/docs/shared/tutorials/vue-standalone.md @@ -5,7 +5,7 @@ description: In this tutorial you'll create a frontend-focused workspace with Nx # Building a Single Vue App with Nx -In this tutorial you'll learn how to use Vue with Nx in a ["standalone" (non-monorepo) setup](/concepts/integrated-vs-package-based#standalone-applications). Not to be confused with the "Vue Standalone API", a standalone project in Nx is a non-monorepo setup where you have a single application at the root level. +In this tutorial you'll learn how to use Vue with Nx in a "standalone" (non-monorepo) setup. Not to be confused with the "Vue Standalone API", a standalone project in Nx is a non-monorepo setup where you have a single application at the root level. What will you learn? @@ -1026,7 +1026,7 @@ Learn more about how to [enforce module boundaries](/features/enforce-module-bou ## Migrating to a Monorepo -When you are ready to add another application to the repo, you'll probably want to move `myvueapp` to its own folder. To do this, you can run the [`convert-to-monorepo` generator](/nx-api/workspace/generators/convert-to-monorepo) or [manually move the configuration files](/recipes/tips-n-tricks/standalone-to-integrated). +When you are ready to add another application to the repo, you'll probably want to move `myvueapp` to its own folder. To do this, you can run the [`convert-to-monorepo` generator](/nx-api/workspace/generators/convert-to-monorepo) or [manually move the configuration files](/recipes/tips-n-tricks/standalone-to-monorepo). ## Fast CI ⚡ {% highlightColor="green" %} diff --git a/nx-dev/nx-dev/pages/tips.tsx b/nx-dev/nx-dev/pages/tips.tsx index 26bad40cd092a..8d1739c358464 100644 --- a/nx-dev/nx-dev/pages/tips.tsx +++ b/nx-dev/nx-dev/pages/tips.tsx @@ -77,7 +77,7 @@ const tips: NewYearTip[] = [

Read more in our{' '} @@ -358,7 +358,7 @@ const tips: NewYearTip[] = [

Read more about using Nx to{' '} diff --git a/nx-dev/nx-dev/redirect-rules.js b/nx-dev/nx-dev/redirect-rules.js index afe355be50319..8672240527399 100644 --- a/nx-dev/nx-dev/redirect-rules.js +++ b/nx-dev/nx-dev/redirect-rules.js @@ -1045,6 +1045,14 @@ const troubleshootingOutOfRecipes = { * Removed deprecated URLs */ const removedDeprecatedUrls = { + '/concepts/integrated-vs-package-based': + '/deprecated/integrated-vs-package-based', + '/recipes/tips-n-tricks/package-based-in-integrated': + '/deprecated/integrated-vs-package-based', + '/recipes/tips-n-tricks/integrated-in-package-based': + '/deprecated/integrated-vs-package-based', + '/recipes/tips-n-tricks/standalone-to-integrated': + '/recipes/tips-n-tricks/standalone-to-monorepo', '/recipes/other/rescope': '/deprecated/rescope', // Removed in Nx 20 '/nx-api/nx/documents/affected-dep-graph': '/deprecated/affected-graph', // nx affected:graph was removed in Nx 19 '/cli/affected-dep-graph': '/deprecated/affected-graph', diff --git a/packages/angular/docs/ng-add-examples.md b/packages/angular/docs/ng-add-examples.md index fdc9d39b72c14..47b3fc55ccd42 100644 --- a/packages/angular/docs/ng-add-examples.md +++ b/packages/angular/docs/ng-add-examples.md @@ -1,5 +1,5 @@ ## Information -This generator is usually used as part of the process of migrating from an Angular CLI Workspace to an [Nx Integrated Workspace](/concepts/integrated-vs-package-based#integrated-repos) using `npx nx@latest init --integrated`. +This generator is usually used as part of the process of migrating from an Angular CLI Workspace to an Nx monorepo using `npx nx@latest init --integrated`. You can read more about [migrating from Angular CLI to Nx here](/recipes/angular/migration/angular).