From 8c723380a7b93b680e692c1b5ec5be0b47d0832a Mon Sep 17 00:00:00 2001 From: Isaac Mann Date: Tue, 1 Aug 2023 11:36:28 -0400 Subject: [PATCH] docs(core): rename enforce project boundaries (#18421) --- docs/generated/manifests/menus.json | 12 +- docs/generated/manifests/nx.json | 84 +- docs/generated/manifests/packages.json | 6 +- docs/generated/manifests/recipes.json | 1939 ----------------- docs/generated/manifests/tags.json | 10 +- docs/generated/packages-metadata.json | 6 +- .../documents/enforce-module-boundaries.md | 2 +- docs/map.json | 36 +- .../angular-standalone.md | 2 +- ...daries.md => enforce-module-boundaries.md} | 2 +- docs/shared/guides/turbo-and-nx.md | 2 +- docs/shared/migration/manual.md | 4 +- docs/shared/monorepo-nx-enterprise.md | 2 +- .../linter/enforce-module-boundaries.md | 2 +- .../react-standalone.md | 2 +- docs/shared/recipes/add-stack/add-lit.md | 2 +- .../shared/reference/project-configuration.md | 2 +- docs/shared/reference/sitemap.md | 2 +- docs/shared/workspace/creating-libraries.md | 2 +- nx-dev/nx-dev/redirect-rules.js | 4 +- .../src/lib/conf-schedule-short.tsx | 2 +- 21 files changed, 94 insertions(+), 2031 deletions(-) delete mode 100644 docs/generated/manifests/recipes.json rename docs/shared/core-features/{enforce-project-boundaries.md => enforce-module-boundaries.md} (99%) diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index 1c0d9ab438..b182dfe43d 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -826,9 +826,9 @@ "disableCollapsible": false }, { - "name": "Enforce Project Boundaries", - "path": "/core-features/enforce-project-boundaries", - "id": "enforce-project-boundaries", + "name": "Enforce Module Boundaries", + "path": "/core-features/enforce-module-boundaries", + "id": "enforce-module-boundaries", "isExternal": false, "children": [], "disableCollapsible": false @@ -918,9 +918,9 @@ "disableCollapsible": false }, { - "name": "Enforce Project Boundaries", - "path": "/core-features/enforce-project-boundaries", - "id": "enforce-project-boundaries", + "name": "Enforce Module Boundaries", + "path": "/core-features/enforce-module-boundaries", + "id": "enforce-module-boundaries", "isExternal": false, "children": [], "disableCollapsible": false diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json index f8df510c8d..25c83d13ae 100644 --- a/docs/generated/manifests/nx.json +++ b/docs/generated/manifests/nx.json @@ -1025,14 +1025,14 @@ "tags": ["automate-updating-dependencies"] }, { - "id": "enforce-project-boundaries", - "name": "Enforce Project Boundaries", + "id": "enforce-module-boundaries", + "name": "Enforce Module Boundaries", "description": "", - "file": "shared/core-features/enforce-project-boundaries", + "file": "shared/core-features/enforce-module-boundaries", "itemList": [], "isExternal": false, - "path": "/core-features/enforce-project-boundaries", - "tags": ["enforce-project-boundaries"] + "path": "/core-features/enforce-module-boundaries", + "tags": ["enforce-module-boundaries"] }, { "id": "plugin-features", @@ -1140,15 +1140,15 @@ "path": "/core-features/automate-updating-dependencies", "tags": ["automate-updating-dependencies"] }, - "/core-features/enforce-project-boundaries": { - "id": "enforce-project-boundaries", - "name": "Enforce Project Boundaries", + "/core-features/enforce-module-boundaries": { + "id": "enforce-module-boundaries", + "name": "Enforce Module Boundaries", "description": "", - "file": "shared/core-features/enforce-project-boundaries", + "file": "shared/core-features/enforce-module-boundaries", "itemList": [], "isExternal": false, - "path": "/core-features/enforce-project-boundaries", - "tags": ["enforce-project-boundaries"] + "path": "/core-features/enforce-module-boundaries", + "tags": ["enforce-module-boundaries"] }, "/core-features/plugin-features": { "id": "plugin-features", @@ -1351,7 +1351,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "tags": ["enforce-project-boundaries", "use-code-generators"] + "tags": ["enforce-module-boundaries", "use-code-generators"] }, { "id": "nx-daemon", @@ -1426,7 +1426,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/applications-and-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "creating-libraries", @@ -1436,7 +1436,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/creating-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "library-types", @@ -1446,7 +1446,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/library-types", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "grouping-libraries", @@ -1456,7 +1456,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/grouping-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "buildable-and-publishable-libraries", @@ -1652,7 +1652,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "tags": ["enforce-project-boundaries", "use-code-generators"] + "tags": ["enforce-module-boundaries", "use-code-generators"] }, { "id": "nx-daemon", @@ -1722,7 +1722,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/applications-and-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "creating-libraries", @@ -1732,7 +1732,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/creating-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "library-types", @@ -1742,7 +1742,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/library-types", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "grouping-libraries", @@ -1752,7 +1752,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/grouping-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "buildable-and-publishable-libraries", @@ -1877,7 +1877,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "tags": ["enforce-project-boundaries", "use-code-generators"] + "tags": ["enforce-module-boundaries", "use-code-generators"] }, "/concepts/more-concepts/nx-daemon": { "id": "nx-daemon", @@ -1947,7 +1947,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/applications-and-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/concepts/more-concepts/creating-libraries": { "id": "creating-libraries", @@ -1957,7 +1957,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/creating-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/concepts/more-concepts/library-types": { "id": "library-types", @@ -1967,7 +1967,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/library-types", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/concepts/more-concepts/grouping-libraries": { "id": "grouping-libraries", @@ -1977,7 +1977,7 @@ "itemList": [], "isExternal": false, "path": "/concepts/more-concepts/grouping-libraries", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/concepts/more-concepts/buildable-and-publishable-libraries": { "id": "buildable-and-publishable-libraries", @@ -2395,7 +2395,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "tag-multiple-dimensions", @@ -2405,7 +2405,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "ban-external-imports", @@ -2415,7 +2415,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "tags-allow-list", @@ -2425,7 +2425,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] } ], "isExternal": false, @@ -3573,7 +3573,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "tag-multiple-dimensions", @@ -3583,7 +3583,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "ban-external-imports", @@ -3593,7 +3593,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "tags-allow-list", @@ -3603,7 +3603,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] } ], "isExternal": false, @@ -3618,7 +3618,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/recipes/enforce-module-boundaries/tag-multiple-dimensions": { "id": "tag-multiple-dimensions", @@ -3628,7 +3628,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/recipes/enforce-module-boundaries/ban-external-imports": { "id": "ban-external-imports", @@ -3638,7 +3638,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/recipes/enforce-module-boundaries/tags-allow-list": { "id": "tags-allow-list", @@ -3648,7 +3648,7 @@ "itemList": [], "isExternal": false, "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/recipes/ci": { "id": "ci", @@ -4842,7 +4842,7 @@ "itemList": [], "isExternal": false, "path": "/reference/nxignore", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "environment-variables", @@ -4897,7 +4897,7 @@ "itemList": [], "isExternal": false, "path": "/reference/nxignore", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/reference/environment-variables": { "id": "environment-variables", @@ -5346,7 +5346,7 @@ "itemList": [], "isExternal": true, "path": "/reference/nx-json#workspace-layout", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, { "id": "nxjson-generator-defaults", @@ -5431,7 +5431,7 @@ "itemList": [], "isExternal": true, "path": "/reference/nx-json#workspace-layout", - "tags": ["enforce-project-boundaries"] + "tags": ["enforce-module-boundaries"] }, "/reference/nx-json#generators": { "id": "nxjson-generator-defaults", diff --git a/docs/generated/manifests/packages.json b/docs/generated/manifests/packages.json index 6d48ade5dd..6e4e408a3c 100644 --- a/docs/generated/manifests/packages.json +++ b/docs/generated/manifests/packages.json @@ -1652,7 +1652,7 @@ "itemList": [], "isExternal": false, "path": "/packages/nx/documents/format-check", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "originalFilePath": "generated/cli/format-check" }, "/packages/nx/documents/format-write": { @@ -1663,7 +1663,7 @@ "itemList": [], "isExternal": false, "path": "/packages/nx/documents/format-write", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "originalFilePath": "generated/cli/format-write" }, "/packages/nx/documents/migrate": { @@ -1707,7 +1707,7 @@ "itemList": [], "isExternal": false, "path": "/packages/nx/documents/workspace-lint", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "originalFilePath": "generated/cli/workspace-lint" }, "/packages/nx/documents/workspace-generator": { diff --git a/docs/generated/manifests/recipes.json b/docs/generated/manifests/recipes.json deleted file mode 100644 index e4aeda0e8e..0000000000 --- a/docs/generated/manifests/recipes.json +++ /dev/null @@ -1,1939 +0,0 @@ -{ - "/recipes/adopting-nx": { - "id": "adopting-nx", - "name": "Migrating to Nx", - "description": "Adopting Nx incrementally, on existing project or from scratch.", - "file": "", - "itemList": [ - { - "id": "adding-to-monorepo", - "name": "NPM/Yarn/PNPM workspaces", - "description": "", - "file": "shared/migration/adding-to-monorepo", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-monorepo", - "tags": [] - }, - { - "id": "adding-to-existing-project", - "name": "Add to any Project", - "description": "", - "file": "shared/migration/adding-to-existing-project", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-existing-project", - "tags": [] - }, - { - "id": "lerna-and-nx", - "name": "Nx and Lerna", - "description": "", - "file": "shared/migration/lerna-and-nx", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/lerna-and-nx", - "tags": [] - }, - { - "id": "preserving-git-histories", - "name": "Preserving Git Histories", - "description": "", - "file": "shared/migration/preserving-git-histories", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/preserving-git-histories", - "tags": [] - }, - { - "id": "manual", - "name": "Manual migration", - "description": "", - "file": "shared/migration/manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/manual", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/adopting-nx", - "tags": [] - }, - "/recipes/adopting-nx/adding-to-monorepo": { - "id": "adding-to-monorepo", - "name": "NPM/Yarn/PNPM workspaces", - "description": "", - "file": "shared/migration/adding-to-monorepo", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-monorepo", - "tags": [] - }, - "/recipes/adopting-nx/adding-to-existing-project": { - "id": "adding-to-existing-project", - "name": "Add to any Project", - "description": "", - "file": "shared/migration/adding-to-existing-project", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-existing-project", - "tags": [] - }, - "/recipes/adopting-nx/lerna-and-nx": { - "id": "lerna-and-nx", - "name": "Nx and Lerna", - "description": "", - "file": "shared/migration/lerna-and-nx", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/lerna-and-nx", - "tags": [] - }, - "/recipes/adopting-nx/preserving-git-histories": { - "id": "preserving-git-histories", - "name": "Preserving Git Histories", - "description": "", - "file": "shared/migration/preserving-git-histories", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/preserving-git-histories", - "tags": [] - }, - "/recipes/adopting-nx/manual": { - "id": "manual", - "name": "Manual migration", - "description": "", - "file": "shared/migration/manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/manual", - "tags": [] - }, - "/recipes/angular": { - "id": "angular", - "name": "Angular", - "description": "Advanced guides to adopt Nx in Angular.", - "file": "", - "itemList": [ - { - "id": "migration", - "name": "Migration", - "description": "", - "file": "", - "itemList": [ - { - "id": "angular", - "name": "Migrating from Angular CLI", - "description": "", - "file": "shared/migration/migration-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular", - "tags": [] - }, - { - "id": "angular-multiple", - "name": "Migrating From Multiple Angular CLI Repos", - "description": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-multiple", - "tags": [] - }, - { - "id": "angular-manual", - "name": "Migrating Angular Application manually", - "description": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-manual", - "tags": [] - }, - { - "id": "angularjs", - "name": "Migrating from AngularJS", - "description": "", - "file": "shared/migration/migration-angularjs", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angularjs", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/angular/migration", - "tags": [] - }, - { - "id": "angular-integrated", - "name": "From Angular CLI to Integrated", - "description": "", - "file": "shared/migration/angular-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx-angular/angular-integrated", - "tags": [] - }, - { - "id": "angular-manual", - "name": "From Angular CLI Manually", - "description": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx-angular/angular-manual", - "tags": [] - }, - { - "id": "angular-multiple", - "name": "From Multiple Angular CLI Repos", - "description": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx-angular/angular-multiple", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/adopting-nx-angular", - "tags": [] - }, - "/recipes/adopting-nx-angular/migration-angular": { - "id": "migration-angular", - "name": "From Angular CLI", - "description": "", - "file": "shared/migration/migration-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx-angular/migration-angular", - "tags": [] - }, - "/recipes/adopting-nx-angular/angular-integrated": { - "id": "angular-integrated", - "name": "From Angular CLI to Integrated", - "description": "", - "file": "shared/migration/angular-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx-angular/angular-integrated", - "tags": [] - }, - "/recipes/adopting-nx-angular/angular-manual": { - "id": "angular-manual", - "name": "From Angular CLI Manually", - "description": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx-angular/angular-manual", - "tags": [] - }, - "/recipes/adopting-nx-angular/angular-multiple": { - "id": "angular-multiple", - "name": "From Multiple Angular CLI Repos", - "description": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx-angular/angular-multiple", - "tags": [] - }, - "/recipes/add-stack": { - "id": "add-stack", - "name": "Add a New Project", - "description": "Instructions to add a project from a new stack to an Nx workspace", - "file": "", - "itemList": [ - { - "id": "add-lit", - "name": "Add a Lit Project", - "description": "Add a Lit project to your repo", - "file": "shared/recipes/add-stack/add-lit", - "itemList": [], - "isExternal": false, - "path": "/recipes/add-stack/add-lit", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/add-stack", - "tags": [] - }, - "/recipes/add-stack/add-lit": { - "id": "add-lit", - "name": "Add a Lit Project", - "description": "Add a Lit project to your repo", - "file": "shared/recipes/add-stack/add-lit", - "itemList": [], - "isExternal": false, - "path": "/recipes/add-stack/add-lit", - "tags": [] - }, - "/recipes/executors": { - "id": "executors", - "name": "Executors", - "description": "Use, extend and compose executors.", - "file": "", - "itemList": [ - { - "id": "use-executor-configurations", - "name": "Use Executor Configurations", - "description": "", - "file": "shared/recipes/use-executor-configurations", - "itemList": [], - "isExternal": false, - "path": "/recipes/executors/use-executor-configurations", - "tags": ["use-task-executors"] - }, - { - "id": "run-commands-executor", - "name": "Running Custom Commands", - "description": "", - "file": "shared/running-custom-commands", - "itemList": [], - "isExternal": false, - "path": "/recipes/executors/run-commands-executor", - "tags": ["use-task-executors"] - } - ], - "isExternal": false, - "path": "/recipes/executors", - "tags": [] - }, - "/recipes/executors/use-executor-configurations": { - "id": "use-executor-configurations", - "name": "Use Executor Configurations", - "description": "", - "file": "shared/recipes/use-executor-configurations", - "itemList": [], - "isExternal": false, - "path": "/recipes/executors/use-executor-configurations", - "tags": ["use-task-executors"] - }, - "/recipes/executors/run-commands-executor": { - "id": "run-commands-executor", - "name": "Running Custom Commands", - "description": "", - "file": "shared/running-custom-commands", - "itemList": [], - "isExternal": false, - "path": "/recipes/executors/run-commands-executor", - "tags": ["use-task-executors"] - }, - "/recipes/environment-variables": { - "id": "environment-variables", - "name": "Environment Variables", - "description": "Using environment variables in an Nx workspace.", - "file": "", - "itemList": [ - { - "id": "define-environment-variables", - "name": "Define Environment Variables", - "description": "", - "file": "shared/guides/define-environment-variables", - "itemList": [], - "isExternal": false, - "path": "/recipes/environment-variables/define-environment-variables", - "tags": ["environment-variables"] - }, - { - "id": "use-environment-variables-in-react", - "name": "Use Environment Variables in React", - "description": "", - "file": "shared/guides/use-environment-variables-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/environment-variables/use-environment-variables-in-react", - "tags": ["environment-variables"] - }, - { - "id": "use-environment-variables-in-angular", - "name": "Use Environment Variables in Angular", - "description": "", - "file": "shared/guides/use-environment-variables-in-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/use-environment-variables-in-angular", - "tags": ["environment-variables"] - }, - { - "id": "using-tailwind-css-with-angular-projects", - "name": "Using Tailwind CSS with Angular projects", - "description": "", - "file": "shared/guides/using-tailwind-css-with-angular-projects", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/using-tailwind-css-with-angular-projects", - "tags": [] - }, - { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for Angular", - "description": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/module-federation-with-ssr", - "tags": ["use-task-executors", "module-federation", "angular"] - }, - { - "id": "dynamic-module-federation-with-angular", - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "description": "", - "file": "shared/guides/module-federation/dynamic-mfe-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/dynamic-module-federation-with-angular", - "tags": ["use-task-executors", "module-federation", "angular"] - }, - { - "id": "setup-incremental-builds-angular", - "name": "Setup incremental builds for Angular applications", - "description": "", - "file": "shared/guides/setup-incremental-builds-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/setup-incremental-builds-angular", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/angular", - "tags": [] - }, - "/recipes/angular/migration": { - "id": "migration", - "name": "Migration", - "description": "", - "file": "", - "itemList": [ - { - "id": "angular", - "name": "Migrating from Angular CLI", - "description": "", - "file": "shared/migration/migration-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular", - "tags": [] - }, - { - "id": "angular-multiple", - "name": "Migrating From Multiple Angular CLI Repos", - "description": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-multiple", - "tags": [] - }, - { - "id": "angular-manual", - "name": "Migrating Angular Application manually", - "description": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-manual", - "tags": [] - }, - { - "id": "angularjs", - "name": "Migrating from AngularJS", - "description": "", - "file": "shared/migration/migration-angularjs", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angularjs", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/angular/migration", - "tags": [] - }, - "/recipes/angular/migration/angular": { - "id": "angular", - "name": "Migrating from Angular CLI", - "description": "", - "file": "shared/migration/migration-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular", - "tags": [] - }, - "/recipes/angular/migration/angular-multiple": { - "id": "angular-multiple", - "name": "Migrating From Multiple Angular CLI Repos", - "description": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-multiple", - "tags": [] - }, - "/recipes/angular/migration/angular-manual": { - "id": "angular-manual", - "name": "Migrating Angular Application manually", - "description": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-manual", - "tags": [] - }, - "/recipes/angular/migration/angularjs": { - "id": "angularjs", - "name": "Migrating from AngularJS", - "description": "", - "file": "shared/migration/migration-angularjs", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angularjs", - "tags": [] - }, - "/recipes/angular/use-environment-variables-in-angular": { - "id": "use-environment-variables-in-angular", - "name": "Use Environment Variables in Angular", - "description": "", - "file": "shared/guides/use-environment-variables-in-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/use-environment-variables-in-angular", - "tags": ["environment-variables"] - }, - "/recipes/angular/using-tailwind-css-with-angular-projects": { - "id": "using-tailwind-css-with-angular-projects", - "name": "Using Tailwind CSS with Angular projects", - "description": "", - "file": "shared/guides/using-tailwind-css-with-angular-projects", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/using-tailwind-css-with-angular-projects", - "tags": [] - }, - "/recipes/angular/module-federation-with-ssr": { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for Angular", - "description": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/module-federation-with-ssr", - "tags": ["use-task-executors", "module-federation", "angular"] - }, - "/recipes/angular/dynamic-module-federation-with-angular": { - "id": "dynamic-module-federation-with-angular", - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "description": "", - "file": "shared/guides/module-federation/dynamic-mfe-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/dynamic-module-federation-with-angular", - "tags": ["use-task-executors", "module-federation", "angular"] - }, - "/recipes/angular/setup-incremental-builds-angular": { - "id": "setup-incremental-builds-angular", - "name": "Setup incremental builds for Angular applications", - "description": "", - "file": "shared/guides/setup-incremental-builds-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/setup-incremental-builds-angular", - "tags": [] - }, - "/recipes/react": { - "id": "react", - "name": "React", - "description": "Advanced guides to adopt Nx in React.", - "file": "", - "itemList": [ - { - "id": "migration-cra", - "name": "Migrating from CRA", - "description": "", - "file": "shared/migration/migration-cra", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/migration-cra", - "tags": [] - }, - { - "id": "react-18", - "name": "React 18 Migration", - "description": "", - "file": "shared/guides/react-18", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-18", - "tags": [] - }, - { - "id": "react-native", - "name": "React Native with Nx", - "description": "", - "file": "shared/guides/react-native", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-native", - "tags": [] - }, - { - "id": "remix", - "name": "Remix with Nx", - "description": "", - "file": "shared/guides/remix", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/remix", - "tags": [] - }, - { - "id": "use-environment-variables-in-react", - "name": "Use Environment Variables in React", - "description": "", - "file": "shared/guides/use-environment-variables-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/use-environment-variables-in-react", - "tags": ["environment-variables"] - }, - { - "id": "using-tailwind-css-in-react", - "name": "Using Tailwind CSS in React", - "description": "", - "file": "shared/guides/using-tailwind-css-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/using-tailwind-css-in-react", - "tags": [] - }, - { - "id": "adding-assets-react", - "name": "Adding Images, Fonts, and Files", - "description": "", - "file": "shared/guides/adding-assets", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/adding-assets-react", - "tags": [] - }, - { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for React", - "description": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/module-federation-with-ssr", - "tags": ["use-task-executors", "module-federation", "react"] - }, - { - "id": "deploy-nextjs-to-vercel", - "name": "Deploying Next.js applications to Vercel", - "description": "", - "file": "shared/recipes/deployment/deploy-nextjs-to-vercel", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/deploy-nextjs-to-vercel", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/react", - "tags": [] - }, - "/recipes/react/migration-cra": { - "id": "migration-cra", - "name": "Migrating from CRA", - "description": "", - "file": "shared/migration/migration-cra", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/migration-cra", - "tags": [] - }, - "/recipes/react/react-18": { - "id": "react-18", - "name": "React 18 Migration", - "description": "", - "file": "shared/guides/react-18", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-18", - "tags": [] - }, - "/recipes/react/react-native": { - "id": "react-native", - "name": "React Native with Nx", - "description": "", - "file": "shared/guides/react-native", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-native", - "tags": [] - }, - "/recipes/react/remix": { - "id": "remix", - "name": "Remix with Nx", - "description": "", - "file": "shared/guides/remix", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/remix", - "tags": [] - }, - "/recipes/react/use-environment-variables-in-react": { - "id": "use-environment-variables-in-react", - "name": "Use Environment Variables in React", - "description": "", - "file": "shared/guides/use-environment-variables-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/use-environment-variables-in-react", - "tags": ["environment-variables"] - }, - "/recipes/react/using-tailwind-css-in-react": { - "id": "using-tailwind-css-in-react", - "name": "Using Tailwind CSS in React", - "description": "", - "file": "shared/guides/using-tailwind-css-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/using-tailwind-css-in-react", - "tags": [] - }, - "/recipes/react/adding-assets-react": { - "id": "adding-assets-react", - "name": "Adding Images, Fonts, and Files", - "description": "", - "file": "shared/guides/adding-assets", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/adding-assets-react", - "tags": [] - }, - "/recipes/react/module-federation-with-ssr": { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for React", - "description": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/module-federation-with-ssr", - "tags": ["use-task-executors", "module-federation", "react"] - }, - "/recipes/react/deploy-nextjs-to-vercel": { - "id": "deploy-nextjs-to-vercel", - "name": "Deploying Next.js applications to Vercel", - "description": "", - "file": "shared/recipes/deployment/deploy-nextjs-to-vercel", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/deploy-nextjs-to-vercel", - "tags": [] - }, - "/recipes/node": { - "id": "node", - "name": "Node", - "description": "Set of Node related recipes.", - "file": "", - "itemList": [ - { - "id": "node-server-fly-io", - "name": "Deploying a Node App to Fly.io", - "description": "", - "file": "shared/recipes/deployment/node-server-fly-io", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-server-fly-io", - "tags": ["deployment", "node"] - }, - { - "id": "node-serverless-functions-netlify", - "name": "Add and Deploy Netlify Edge Functions with Node", - "description": "", - "file": "shared/recipes/deployment/node-serverless-functions-netlify", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-serverless-functions-netlify", - "tags": ["deployment", "node"] - }, - { - "id": "node-aws-lambda", - "name": "Deploying AWS lambda in Node.js", - "description": "", - "file": "shared/recipes/deployment/node-aws-lambda", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-aws-lambda", - "tags": ["deployment", "node"] - } - ], - "isExternal": false, - "path": "/recipes/node", - "tags": [] - }, - "/recipes/node/node-server-fly-io": { - "id": "node-server-fly-io", - "name": "Deploying a Node App to Fly.io", - "description": "", - "file": "shared/recipes/deployment/node-server-fly-io", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-server-fly-io", - "tags": ["deployment", "node"] - }, - "/recipes/node/node-serverless-functions-netlify": { - "id": "node-serverless-functions-netlify", - "name": "Add and Deploy Netlify Edge Functions with Node", - "description": "", - "file": "shared/recipes/deployment/node-serverless-functions-netlify", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-serverless-functions-netlify", - "tags": ["deployment", "node"] - }, - "/recipes/node/node-aws-lambda": { - "id": "node-aws-lambda", - "name": "Deploying AWS lambda in Node.js", - "description": "", - "file": "shared/recipes/deployment/node-aws-lambda", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-aws-lambda", - "tags": ["deployment", "node"] - }, - "/recipes/storybook": { - "id": "storybook", - "name": "Storybook", - "description": "Storybook how tos.", - "file": "", - "itemList": [ - { - "id": "one-storybook-for-all", - "name": "One main Storybook instance for all projects", - "description": "", - "file": "shared/recipes/one-storybook-for-all", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-for-all", - "tags": ["storybook"] - }, - { - "id": "one-storybook-per-scope", - "name": "One Storybook instance per scope", - "description": "", - "file": "shared/recipes/one-storybook-per-scope", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-per-scope", - "tags": ["storybook"] - }, - { - "id": "one-storybook-with-composition", - "name": "One main Storybook instance using Storybook Composition", - "description": "", - "file": "shared/recipes/one-storybook-with-composition", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-with-composition", - "tags": ["storybook"] - } - ], - "isExternal": false, - "path": "/recipes/storybook", - "tags": [] - }, - "/recipes/storybook/one-storybook-for-all": { - "id": "one-storybook-for-all", - "name": "One main Storybook instance for all projects", - "description": "", - "file": "shared/recipes/one-storybook-for-all", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-for-all", - "tags": ["storybook"] - }, - "/recipes/storybook/one-storybook-per-scope": { - "id": "one-storybook-per-scope", - "name": "One Storybook instance per scope", - "description": "", - "file": "shared/recipes/one-storybook-per-scope", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-per-scope", - "tags": ["storybook"] - }, - "/recipes/storybook/one-storybook-with-composition": { - "id": "one-storybook-with-composition", - "name": "One main Storybook instance using Storybook Composition", - "description": "", - "file": "shared/recipes/one-storybook-with-composition", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-with-composition", - "tags": ["storybook"] - }, - "/recipes/enforce-module-boundaries": { - "id": "enforce-module-boundaries", - "name": "Enforce Module Boundaries", - "description": "Configuring the enforce module boundaries rule", - "file": "", - "itemList": [ - { - "id": "ban-dependencies-with-tags", - "name": "Ban Dependencies with Certain Tags", - "description": "", - "file": "shared/recipes/ban-dependencies-with-tags", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "tags": ["enforce-project-boundaries"] - }, - { - "id": "tag-multiple-dimensions", - "name": "Tag in Multiple Dimensions", - "description": "", - "file": "shared/recipes/tag-multiple-dimensions", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "tags": ["enforce-project-boundaries"] - }, - { - "id": "ban-external-imports", - "name": "Ban External Imports", - "description": "", - "file": "shared/recipes/ban-external-imports", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "tags": ["enforce-project-boundaries"] - }, - { - "id": "tags-allow-list", - "name": "Tags Allow List", - "description": "", - "file": "shared/recipes/tags-allow-list", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "tags": ["enforce-project-boundaries"] - } - ], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries", - "tags": [] - }, - "/recipes/enforce-module-boundaries/ban-dependencies-with-tags": { - "id": "ban-dependencies-with-tags", - "name": "Ban Dependencies with Certain Tags", - "description": "", - "file": "shared/recipes/ban-dependencies-with-tags", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "tags": ["enforce-project-boundaries"] - }, - "/recipes/enforce-module-boundaries/tag-multiple-dimensions": { - "id": "tag-multiple-dimensions", - "name": "Tag in Multiple Dimensions", - "description": "", - "file": "shared/recipes/tag-multiple-dimensions", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "tags": ["enforce-project-boundaries"] - }, - "/recipes/enforce-module-boundaries/ban-external-imports": { - "id": "ban-external-imports", - "name": "Ban External Imports", - "description": "", - "file": "shared/recipes/ban-external-imports", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "tags": ["enforce-project-boundaries"] - }, - "/recipes/enforce-module-boundaries/tags-allow-list": { - "id": "tags-allow-list", - "name": "Tags Allow List", - "description": "", - "file": "shared/recipes/tags-allow-list", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "tags": ["enforce-project-boundaries"] - }, - "/recipes/ci": { - "id": "ci", - "name": "CI", - "description": "All recipes about how to use Nx to make your CI faster.", - "file": "", - "itemList": [ - { - "id": "ci-setup", - "name": "CI Setup", - "description": "", - "file": "shared/ci-overview", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/ci-setup", - "tags": ["distribute-task-execution"] - }, - { - "id": "ci-deployment", - "name": "Prepare applications for deployment via CI", - "description": "", - "file": "shared/recipes/ci-deployment", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/ci-deployment", - "tags": ["docker", "deploy"] - }, - { - "id": "monorepo-ci-azure", - "name": "Setting up Azure Pipelines", - "description": "", - "file": "shared/monorepo-ci-azure", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-azure", - "tags": [] - }, - { - "id": "monorepo-ci-circle-ci", - "name": "Setting up CircleCI", - "description": "", - "file": "shared/monorepo-ci-circle-ci", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-circle-ci", - "tags": [] - }, - { - "id": "monorepo-ci-github-actions", - "name": "Setting up GitHub Actions", - "description": "", - "file": "shared/monorepo-ci-github-actions", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-github-actions", - "tags": [] - }, - { - "id": "monorepo-ci-jenkins", - "name": "Setting up Jenkins", - "description": "", - "file": "shared/monorepo-ci-jenkins", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-jenkins", - "tags": [] - }, - { - "id": "monorepo-ci-gitlab", - "name": "Setting up GitLab", - "description": "", - "file": "shared/monorepo-ci-gitlab", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-gitlab", - "tags": [] - }, - { - "id": "monorepo-ci-bitbucket-pipelines", - "name": "Setting up Bitbucket", - "description": "", - "file": "shared/monorepo-ci-bitbucket-pipelines", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-bitbucket-pipelines", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/ci", - "tags": [] - }, - "/recipes/ci/ci-setup": { - "id": "ci-setup", - "name": "CI Setup", - "description": "", - "file": "shared/ci-overview", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/ci-setup", - "tags": ["distribute-task-execution"] - }, - "/recipes/ci/ci-deployment": { - "id": "ci-deployment", - "name": "Prepare applications for deployment via CI", - "description": "", - "file": "shared/recipes/ci-deployment", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/ci-deployment", - "tags": ["docker", "deploy"] - }, - "/recipes/ci/monorepo-ci-azure": { - "id": "monorepo-ci-azure", - "name": "Setting up Azure Pipelines", - "description": "", - "file": "shared/monorepo-ci-azure", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-azure", - "tags": [] - }, - "/recipes/ci/monorepo-ci-circle-ci": { - "id": "monorepo-ci-circle-ci", - "name": "Setting up CircleCI", - "description": "", - "file": "shared/monorepo-ci-circle-ci", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-circle-ci", - "tags": [] - }, - "/recipes/ci/monorepo-ci-github-actions": { - "id": "monorepo-ci-github-actions", - "name": "Setting up GitHub Actions", - "description": "", - "file": "shared/monorepo-ci-github-actions", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-github-actions", - "tags": [] - }, - "/recipes/ci/monorepo-ci-jenkins": { - "id": "monorepo-ci-jenkins", - "name": "Setting up Jenkins", - "description": "", - "file": "shared/monorepo-ci-jenkins", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-jenkins", - "tags": [] - }, - "/recipes/ci/monorepo-ci-gitlab": { - "id": "monorepo-ci-gitlab", - "name": "Setting up GitLab", - "description": "", - "file": "shared/monorepo-ci-gitlab", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-gitlab", - "tags": [] - }, - "/recipes/ci/monorepo-ci-bitbucket-pipelines": { - "id": "monorepo-ci-bitbucket-pipelines", - "name": "Setting up Bitbucket", - "description": "", - "file": "shared/monorepo-ci-bitbucket-pipelines", - "itemList": [], - "isExternal": false, - "path": "/recipes/ci/monorepo-ci-bitbucket-pipelines", - "tags": [] - }, - "/recipes/nx-console": { - "id": "nx-console", - "name": "Nx Console", - "description": "Checkout all the recipes related to Nx Console.", - "file": "", - "itemList": [ - { - "id": "console-telemetry", - "name": "Telemetry", - "description": "", - "file": "shared/recipes/console-telemetry", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-telemetry", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-generate-command", - "name": "Generate Command", - "description": "", - "file": "shared/recipes/console-generate-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-generate-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-run-command", - "name": "Run Command", - "description": "", - "file": "shared/recipes/console-run-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-run-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-add-dependency-command", - "name": "Add Dependency Command", - "description": "", - "file": "shared/recipes/console-add-dependency-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-add-dependency-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-project-pane", - "name": "Project Pane", - "description": "", - "file": "shared/recipes/console-project-pane", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-project-pane", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-shortcuts", - "name": "Keyboard Shortcuts", - "description": "", - "file": "shared/recipes/console-shortcuts", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-shortcuts", - "tags": ["integrate-with-editors"] - } - ], - "isExternal": false, - "path": "/recipes/nx-console", - "tags": [] - }, - "/recipes/nx-console/console-telemetry": { - "id": "console-telemetry", - "name": "Telemetry", - "description": "", - "file": "shared/recipes/console-telemetry", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-telemetry", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-generate-command": { - "id": "console-generate-command", - "name": "Generate Command", - "description": "", - "file": "shared/recipes/console-generate-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-generate-command", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-run-command": { - "id": "console-run-command", - "name": "Run Command", - "description": "", - "file": "shared/recipes/console-run-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-run-command", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-add-dependency-command": { - "id": "console-add-dependency-command", - "name": "Add Dependency Command", - "description": "", - "file": "shared/recipes/console-add-dependency-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-add-dependency-command", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-project-pane": { - "id": "console-project-pane", - "name": "Project Pane", - "description": "", - "file": "shared/recipes/console-project-pane", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-project-pane", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-shortcuts": { - "id": "console-shortcuts", - "name": "Keyboard Shortcuts", - "description": "", - "file": "shared/recipes/console-shortcuts", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-shortcuts", - "tags": ["integrate-with-editors"] - }, - "/recipes/troubleshooting": { - "id": "troubleshooting", - "name": "Troubleshooting", - "description": "Learn how to troubleshoot common problems.", - "file": "", - "itemList": [ - { - "id": "resolve-circular-dependencies", - "name": "Resolve Circular Dependencies", - "description": "", - "file": "shared/recipes/resolve-circular-dependencies", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/resolve-circular-dependencies", - "tags": ["explore-graph"] - }, - { - "id": "troubleshoot-nx-install-issues", - "name": "Troubleshooting Nx Install Issues", - "description": "", - "file": "shared/installation/troubleshoot-installation", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", - "tags": [] - }, - { - "id": "troubleshoot-cache-misses", - "name": "Troubleshoot Cache Misses", - "description": "", - "file": "shared/recipes/troubleshoot-cache-misses", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-cache-misses", - "tags": ["cache-task-results"] - }, - { - "id": "unknown-local-cache", - "name": "Unknown Local Cache Error", - "description": "", - "file": "shared/guides/unknown-local-cache", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/unknown-local-cache", - "tags": [] - }, - { - "id": "performance-profiling", - "name": "Profiling Build Performance", - "description": "", - "file": "shared/guides/performance-profiling", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/performance-profiling", - "tags": ["use-task-executors", "environment-variables"] - } - ], - "isExternal": false, - "path": "/recipes/troubleshooting", - "tags": [] - }, - "/recipes/troubleshooting/resolve-circular-dependencies": { - "id": "resolve-circular-dependencies", - "name": "Resolve Circular Dependencies", - "description": "", - "file": "shared/recipes/resolve-circular-dependencies", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/resolve-circular-dependencies", - "tags": ["explore-graph"] - }, - "/recipes/troubleshooting/troubleshoot-nx-install-issues": { - "id": "troubleshoot-nx-install-issues", - "name": "Troubleshooting Nx Install Issues", - "description": "", - "file": "shared/installation/troubleshoot-installation", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", - "tags": [] - }, - "/recipes/troubleshooting/troubleshoot-cache-misses": { - "id": "troubleshoot-cache-misses", - "name": "Troubleshoot Cache Misses", - "description": "", - "file": "shared/recipes/troubleshoot-cache-misses", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-cache-misses", - "tags": ["cache-task-results"] - }, - "/recipes/troubleshooting/unknown-local-cache": { - "id": "unknown-local-cache", - "name": "Unknown Local Cache Error", - "description": "", - "file": "shared/guides/unknown-local-cache", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/unknown-local-cache", - "tags": [] - }, - "/recipes/troubleshooting/performance-profiling": { - "id": "performance-profiling", - "name": "Profiling Build Performance", - "description": "", - "file": "shared/guides/performance-profiling", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/performance-profiling", - "tags": ["use-task-executors", "environment-variables"] - }, - "/recipes/tips-n-tricks": { - "id": "tips-n-tricks", - "name": "Tips and tricks", - "description": "Various tips and tricks for using Nx.", - "file": "", - "itemList": [ - { - "id": "eslint", - "name": "Configuring ESLint with Typescript", - "description": "", - "file": "shared/eslint", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/eslint", - "tags": [] - }, - { - "id": "define-environment-variables", - "name": "Define Environment Variables", - "description": "", - "file": "shared/guides/define-environment-variables", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/define-environment-variables", - "tags": ["environment-variables"] - }, - { - "id": "browser-support", - "name": "Configuring Browser Support", - "description": "", - "file": "shared/guides/browser-support", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/browser-support", - "tags": [] - }, - { - "id": "include-assets-in-build", - "name": "Include Assets in Build", - "description": "", - "file": "shared/recipes/include-assets-in-build", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-assets-in-build", - "tags": [] - }, - { - "id": "include-all-packagejson", - "name": "Include All package.json Files as Projects", - "description": "", - "file": "shared/recipes/include-all-packagejson", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-all-packagejson", - "tags": [] - }, - { - "id": "identify-dependencies-between-folders", - "name": "Identify Dependencies Between Folders", - "description": "", - "file": "shared/recipes/identify-dependencies-between-folders", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", - "tags": [] - }, - { - "id": "root-level-scripts", - "name": "Run Root-Level NPM Scripts with Nx", - "description": "", - "file": "shared/recipes/root-level-scripts", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/root-level-scripts", - "tags": ["run-tasks"] - }, - { - "id": "analyze-source-files", - "name": "Disable Graph Links Created from Analyzing Source Files", - "description": "", - "file": "shared/recipes/analyze-source-files", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/analyze-source-files", - "tags": ["explore-graph"] - }, - { - "id": "workspace-watching", - "name": "Workspace Watching", - "description": "", - "file": "shared/recipes/workspace-watching", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/workspace-watching", - "tags": ["workspace-watching"] - }, - { - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "description": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "tags": ["repository-types"] - }, - { - "id": "js-and-ts", - "name": "Use JavaScript instead TypeScript", - "description": "", - "file": "shared/guides/js-and-ts", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/js-and-ts", - "tags": [] - }, - { - "id": "advanced-update", - "name": "Altering Migration Process", - "description": "", - "file": "shared/recipes/advanced-update", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/advanced-update", - "tags": ["automate-updating-dependencies"] - }, - { - "id": "run-commands-executor", - "name": "Running Custom Commands", - "description": "", - "file": "shared/running-custom-commands", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/run-commands-executor", - "tags": ["use-task-executors"] - } - ], - "isExternal": false, - "path": "/recipes/tips-n-tricks", - "tags": [] - }, - "/recipes/tips-n-tricks/eslint": { - "id": "eslint", - "name": "Configuring ESLint with Typescript", - "description": "", - "file": "shared/eslint", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/eslint", - "tags": [] - }, - "/recipes/tips-n-tricks/define-environment-variables": { - "id": "define-environment-variables", - "name": "Define Environment Variables", - "description": "", - "file": "shared/guides/define-environment-variables", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/define-environment-variables", - "tags": ["environment-variables"] - }, - "/recipes/tips-n-tricks/browser-support": { - "id": "browser-support", - "name": "Configuring Browser Support", - "description": "", - "file": "shared/guides/browser-support", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/browser-support", - "tags": [] - }, - "/recipes/tips-n-tricks/include-assets-in-build": { - "id": "include-assets-in-build", - "name": "Include Assets in Build", - "description": "", - "file": "shared/recipes/include-assets-in-build", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-assets-in-build", - "tags": [] - }, - "/recipes/tips-n-tricks/include-all-packagejson": { - "id": "include-all-packagejson", - "name": "Include All package.json Files as Projects", - "description": "", - "file": "shared/recipes/include-all-packagejson", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-all-packagejson", - "tags": [] - }, - "/recipes/tips-n-tricks/identify-dependencies-between-folders": { - "id": "identify-dependencies-between-folders", - "name": "Identify Dependencies Between Folders", - "description": "", - "file": "shared/recipes/identify-dependencies-between-folders", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", - "tags": [] - }, - "/recipes/tips-n-tricks/root-level-scripts": { - "id": "root-level-scripts", - "name": "Run Root-Level NPM Scripts with Nx", - "description": "", - "file": "shared/recipes/root-level-scripts", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/root-level-scripts", - "tags": ["run-tasks"] - }, - "/recipes/tips-n-tricks/analyze-source-files": { - "id": "analyze-source-files", - "name": "Disable Graph Links Created from Analyzing Source Files", - "description": "", - "file": "shared/recipes/analyze-source-files", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/analyze-source-files", - "tags": ["explore-graph"] - }, - "/recipes/tips-n-tricks/workspace-watching": { - "id": "workspace-watching", - "name": "Workspace Watching", - "description": "", - "file": "shared/recipes/workspace-watching", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/workspace-watching", - "tags": ["workspace-watching"] - }, - "/recipes/tips-n-tricks/standalone-to-integrated": { - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "description": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "tags": ["repository-types"] - }, - "/recipes/tips-n-tricks/js-and-ts": { - "id": "js-and-ts", - "name": "Use JavaScript instead TypeScript", - "description": "", - "file": "shared/guides/js-and-ts", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/js-and-ts", - "tags": [] - }, - "/recipes/tips-n-tricks/advanced-update": { - "id": "advanced-update", - "name": "Altering Migration Process", - "description": "", - "file": "shared/recipes/advanced-update", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/advanced-update", - "tags": ["automate-updating-dependencies"] - }, - "/recipes/tips-n-tricks/run-commands-executor": { - "id": "run-commands-executor", - "name": "Running Custom Commands", - "description": "", - "file": "shared/running-custom-commands", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/run-commands-executor", - "tags": ["use-task-executors"] - }, - "/recipes/other": { - "id": "other", - "name": "Other", - "description": "Other recipes you will find useful.", - "file": "", - "itemList": [ - { - "id": "deno-deploy", - "name": "Serverless deployment with Deno Deploy", - "description": "", - "file": "shared/recipes/deployment/deno-deploy", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/deno-deploy", - "tags": ["deployment", "deno"] - }, - { - "id": "deno-netlify-functions", - "name": "Add and Deploy Netlify Edge Functions with Deno", - "description": "", - "file": "shared/recipes/deployment/deno-netlify-edge-functions", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/deno-netlify-functions", - "tags": ["deployment", "deno"] - }, - { - "id": "rescope", - "name": "Rescope Packages from @nrwl to @nx", - "description": "", - "file": "shared/recipes/rescope", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/rescope", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/other", - "tags": [] - }, - "/recipes/other/deno-deploy": { - "id": "deno-deploy", - "name": "Serverless deployment with Deno Deploy", - "description": "", - "file": "shared/recipes/deployment/deno-deploy", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/deno-deploy", - "tags": ["deployment", "deno"] - }, - "/recipes/other/deno-netlify-functions": { - "id": "deno-netlify-functions", - "name": "Add and Deploy Netlify Edge Functions with Deno", - "description": "", - "file": "shared/recipes/deployment/deno-netlify-edge-functions", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/deno-netlify-functions", - "tags": ["deployment", "deno"] - }, - "/recipes/other/rescope": { - "id": "rescope", - "name": "Rescope Packages from @nrwl to @nx", - "description": "", - "file": "shared/recipes/rescope", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/rescope", - "tags": [] - }, - "/recipes/example-repos": { - "id": "example-repos", - "name": "Example Repos", - "description": "Examples of different ways to use Nx", - "file": "", - "itemList": [ - { - "id": "react-nx", - "name": "Powering Up React Development With Nx", - "description": "", - "file": "shared/examples/react-nx", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/react-nx", - "tags": [] - }, - { - "id": "apollo-react", - "name": "Using Apollo GraphQL", - "description": "", - "file": "shared/examples/apollo-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/apollo-react", - "tags": [] - }, - { - "id": "nestjs-prisma", - "name": "Using Prisma with NestJS", - "description": "", - "file": "shared/recipes/database/nestjs-prisma", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/nestjs-prisma", - "tags": ["database", "node"] - }, - { - "id": "mongo-fastify", - "name": "Using Mongo with Fastify", - "description": "", - "file": "shared/recipes/database/mongo-fastify", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/mongo-fastify", - "tags": ["database", "node"] - }, - { - "id": "redis-fastify", - "name": "Using Redis with Fastify", - "description": "", - "file": "shared/recipes/database/redis-fastify", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/redis-fastify", - "tags": ["database", "node"] - }, - { - "id": "postgres-fastify", - "name": "Using Postgres with Fastify", - "description": "", - "file": "shared/recipes/database/postgres-fastify", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/postgres-fastify", - "tags": ["database", "node"] - }, - { - "id": "serverless-fastify-planetscale", - "name": "Using PlanetScale with Serverless Fastify", - "description": "", - "file": "shared/recipes/database/serverless-fastify-planetscale", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/serverless-fastify-planetscale", - "tags": ["database", "node", "serverless"] - }, - { - "id": "caching", - "name": "Large Repo and Caching", - "description": "", - "file": "shared/examples/caching", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/caching", - "tags": [] - }, - { - "id": "dte", - "name": "Large Repo and DTE", - "description": "", - "file": "shared/examples/dte", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/dte", - "tags": [] - }, - { - "id": "mfe", - "name": "Nx Micro-Frontend Example", - "description": "", - "file": "shared/examples/nx-examples", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/mfe", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/example-repos", - "tags": [] - }, - "/recipes/example-repos/react-nx": { - "id": "react-nx", - "name": "Powering Up React Development With Nx", - "description": "", - "file": "shared/examples/react-nx", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/react-nx", - "tags": [] - }, - "/recipes/example-repos/apollo-react": { - "id": "apollo-react", - "name": "Using Apollo GraphQL", - "description": "", - "file": "shared/examples/apollo-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/apollo-react", - "tags": [] - }, - "/recipes/example-repos/nestjs-prisma": { - "id": "nestjs-prisma", - "name": "Using Prisma with NestJS", - "description": "", - "file": "shared/recipes/database/nestjs-prisma", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/nestjs-prisma", - "tags": ["database", "node"] - }, - "/recipes/example-repos/mongo-fastify": { - "id": "mongo-fastify", - "name": "Using Mongo with Fastify", - "description": "", - "file": "shared/recipes/database/mongo-fastify", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/mongo-fastify", - "tags": ["database", "node"] - }, - "/recipes/example-repos/redis-fastify": { - "id": "redis-fastify", - "name": "Using Redis with Fastify", - "description": "", - "file": "shared/recipes/database/redis-fastify", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/redis-fastify", - "tags": ["database", "node"] - }, - "/recipes/example-repos/postgres-fastify": { - "id": "postgres-fastify", - "name": "Using Postgres with Fastify", - "description": "", - "file": "shared/recipes/database/postgres-fastify", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/postgres-fastify", - "tags": ["database", "node"] - }, - "/recipes/example-repos/serverless-fastify-planetscale": { - "id": "serverless-fastify-planetscale", - "name": "Using PlanetScale with Serverless Fastify", - "description": "", - "file": "shared/recipes/database/serverless-fastify-planetscale", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/serverless-fastify-planetscale", - "tags": ["database", "node", "serverless"] - }, - "/recipes/example-repos/caching": { - "id": "caching", - "name": "Large Repo and Caching", - "description": "", - "file": "shared/examples/caching", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/caching", - "tags": [] - }, - "/recipes/example-repos/dte": { - "id": "dte", - "name": "Large Repo and DTE", - "description": "", - "file": "shared/examples/dte", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/dte", - "tags": [] - }, - "/recipes/example-repos/mfe": { - "id": "mfe", - "name": "Nx Micro-Frontend Example", - "description": "", - "file": "shared/examples/nx-examples", - "itemList": [], - "isExternal": false, - "path": "/recipes/example-repos/mfe", - "tags": [] - } -} diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index 90ba258cd3..e7a2b78972 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -307,13 +307,13 @@ "path": "/packages/nx/documents/migrate" } ], - "enforce-project-boundaries": [ + "enforce-module-boundaries": [ { "description": "", - "file": "shared/core-features/enforce-project-boundaries", - "id": "enforce-project-boundaries", - "name": "Enforce Project Boundaries", - "path": "/core-features/enforce-project-boundaries" + "file": "shared/core-features/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "name": "Enforce Module Boundaries", + "path": "/core-features/enforce-module-boundaries" }, { "description": "", diff --git a/docs/generated/packages-metadata.json b/docs/generated/packages-metadata.json index 1b421c7dc6..4636322647 100644 --- a/docs/generated/packages-metadata.json +++ b/docs/generated/packages-metadata.json @@ -1633,7 +1633,7 @@ "itemList": [], "isExternal": false, "path": "nx/documents/format-check", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "originalFilePath": "generated/cli/format-check" }, { @@ -1644,7 +1644,7 @@ "itemList": [], "isExternal": false, "path": "nx/documents/format-write", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "originalFilePath": "generated/cli/format-write" }, { @@ -1688,7 +1688,7 @@ "itemList": [], "isExternal": false, "path": "nx/documents/workspace-lint", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "originalFilePath": "generated/cli/workspace-lint" }, { diff --git a/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md b/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md index 4d8061b492..3601b6a11b 100644 --- a/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md +++ b/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md @@ -53,7 +53,7 @@ The `depConstraints` is an array of objects representing the constraints defined Read more about the proper usage of this rule: -- [Enforce Project Boundaries](/core-features/enforce-project-boundaries) +- [Enforce Module Boundaries](/core-features/enforce-module-boundaries) - [Ban Dependencies with Certain Tags](/recipes/enforce-module-boundaries/ban-dependencies-with-tags) - [Tag in Multiple Dimensions](/recipes/enforce-module-boundaries/tag-multiple-dimensions) - [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports) diff --git a/docs/map.json b/docs/map.json index 2d217602b3..e9eccebe5f 100644 --- a/docs/map.json +++ b/docs/map.json @@ -312,10 +312,10 @@ "file": "shared/core-features/automate-updating-dependencies" }, { - "name": "Enforce Project Boundaries", - "id": "enforce-project-boundaries", - "tags": ["enforce-project-boundaries"], - "file": "shared/core-features/enforce-project-boundaries" + "name": "Enforce Module Boundaries", + "id": "enforce-module-boundaries", + "tags": ["enforce-module-boundaries"], + "file": "shared/core-features/enforce-module-boundaries" }, { "name": "Plugin Features", @@ -425,7 +425,7 @@ { "name": "Using Nx at Enterprises", "id": "monorepo-nx-enterprise", - "tags": ["enforce-project-boundaries", "use-code-generators"], + "tags": ["enforce-module-boundaries", "use-code-generators"], "file": "shared/monorepo-nx-enterprise" }, { @@ -468,25 +468,25 @@ { "name": "Applications and Libraries", "id": "applications-and-libraries", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/workspace/applications-and-libraries" }, { "name": "Creating Libraries", "id": "creating-libraries", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/workspace/creating-libraries" }, { "name": "Library Types", "id": "library-types", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/workspace/library-types" }, { "name": "Grouping Libraries", "id": "grouping-libraries", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/workspace/grouping-libraries" }, { @@ -732,25 +732,25 @@ { "name": "Ban Dependencies with Certain Tags", "id": "ban-dependencies-with-tags", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/recipes/ban-dependencies-with-tags" }, { "name": "Tag in Multiple Dimensions", "id": "tag-multiple-dimensions", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/recipes/tag-multiple-dimensions" }, { "name": "Ban External Imports", "id": "ban-external-imports", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/recipes/ban-external-imports" }, { "name": "Tags Allow List", "id": "tags-allow-list", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/recipes/tags-allow-list" } ] @@ -1098,7 +1098,7 @@ { "name": ".nxignore", "id": "nxignore", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "shared/reference/nxignore" }, { @@ -1257,7 +1257,7 @@ "name": "nx.json workspaceLayout property", "id": "nxjson-workspaceLayout", "file": "", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "path": "/reference/nx-json#workspace-layout", "isExternal": true }, @@ -1629,13 +1629,13 @@ { "name": "format:check", "id": "format-check", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "generated/cli/format-check" }, { "name": "format:write", "id": "format-write", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "generated/cli/format-write" }, { @@ -1657,7 +1657,7 @@ { "name": "workspace-lint", "id": "workspace-lint", - "tags": ["enforce-project-boundaries"], + "tags": ["enforce-module-boundaries"], "file": "generated/cli/workspace-lint" }, { diff --git a/docs/shared/angular-standalone-tutorial/angular-standalone.md b/docs/shared/angular-standalone-tutorial/angular-standalone.md index 2e680557db..9e965f8a08 100644 --- a/docs/shared/angular-standalone-tutorial/angular-standalone.md +++ b/docs/shared/angular-standalone-tutorial/angular-standalone.md @@ -813,7 +813,7 @@ If you have the ESLint plugin installed in your IDE you should immediately see a ![ESLint module boundary error](/shared/images/tutorial-angular-standalone/boundary-rule-violation-vscode.png) -Learn more about how to [enforce module boundaries](/core-features/enforce-project-boundaries). +Learn more about how to [enforce module boundaries](/core-features/enforce-module-boundaries). ## Next Steps diff --git a/docs/shared/core-features/enforce-project-boundaries.md b/docs/shared/core-features/enforce-module-boundaries.md similarity index 99% rename from docs/shared/core-features/enforce-project-boundaries.md rename to docs/shared/core-features/enforce-module-boundaries.md index fd05f9891f..824ac8ae28 100644 --- a/docs/shared/core-features/enforce-project-boundaries.md +++ b/docs/shared/core-features/enforce-module-boundaries.md @@ -1,4 +1,4 @@ -# Enforce Project Boundaries +# Enforce Module Boundaries If you partition your code into well-defined cohesive units, even a small organization will end up with a dozen apps and dozens or hundreds of libs. If all of them can depend on each other freely, chaos will ensue, and the workspace will become unmanageable. diff --git a/docs/shared/guides/turbo-and-nx.md b/docs/shared/guides/turbo-and-nx.md index 764f60eacf..f475134dd5 100644 --- a/docs/shared/guides/turbo-and-nx.md +++ b/docs/shared/guides/turbo-and-nx.md @@ -32,7 +32,7 @@ The starting point of any non-trivial monorepo management tool is to be able to - Turborepo only analyzes package.json files to understand how projects relate to each other. Built-in Nx plugins also analyze package.json files but in addition they analyze JS/TS files, so you don't have to have bogus package.json files (that you don’t use for the purposes of installing packages or publishing) in your repo. There are plugins for Nx that do that for other languages (e.g., Golang, .Net). - Since the computation of the project graph can take a lot of time for complex workspaces, both Nx and Turborepo have a daemon process to create the graph in the background. -- **Nx has [project boundary rules](/core-features/enforce-project-boundaries), which are essential for any monorepo with multiple teams contributing.** You can say that some things in the monorepo are private to your team so they cannot be depended on by other teams. Turborepo doesn't have project boundary rules. **Project boundary rules prevent the monorepo from becoming a “big ball of mud”.** +- **Nx has [module boundary rules](/core-features/enforce-module-boundaries), which are essential for any monorepo with multiple teams contributing.** You can say that some things in the monorepo are private to your team so they cannot be depended on by other teams. Turborepo doesn't have project boundary rules. **Project boundary rules prevent the monorepo from becoming a “big ball of mud”.** #### 3. Project graph visualization diff --git a/docs/shared/migration/manual.md b/docs/shared/migration/manual.md index 9790b2a6f4..cf4b29cad1 100644 --- a/docs/shared/migration/manual.md +++ b/docs/shared/migration/manual.md @@ -73,7 +73,7 @@ For example, your generated application should have four [tasks available](/core These workspace configuration files can seem a little long and intimidating. The Nx Console can help you navigate it more easily with its Workspace JSON panel. By clicking on a project in your workspace, it will navigate you to the right place in the workspace file to begin making edits. -Additionally, there is an `nx.json` file that contains metadata about your projects. [This metadata includes tags](/core-features/enforce-project-boundaries) that can help you impose constraints on your applications and library dependencies. +Additionally, there is an `nx.json` file that contains metadata about your projects. [This metadata includes tags](/core-features/enforce-module-boundaries) that can help you impose constraints on your applications and library dependencies. ## Migrating your code @@ -196,4 +196,4 @@ It’s important to remember: don’t just drop your code anywhere! Always gener If you’re consolidating multiple repositories or libraries into a single Nx workspace, you may have concerns about code boundaries. Previously, you may have had well-established boundaries by separating code into different repositories or having a public API for a library. Nx features a tagging system that allows you to enforce these code boundaries in a granular way. Each project can be tagged, and you can constrain dependencies based on these tags. -[Learn more about tags and dependency constraints](/core-features/enforce-project-boundaries) +[Learn more about tags and dependency constraints](/core-features/enforce-module-boundaries) diff --git a/docs/shared/monorepo-nx-enterprise.md b/docs/shared/monorepo-nx-enterprise.md index e68007b160..a6749552b8 100644 --- a/docs/shared/monorepo-nx-enterprise.md +++ b/docs/shared/monorepo-nx-enterprise.md @@ -148,7 +148,7 @@ For a large organization it's crucial to establish how projects can depend on ea feature libraries. Nx provides a feature called tags that can be used to codify and statically-enforce these rules. Read more about -tags [here](/core-features/enforce-project-boundaries). +tags [here](/core-features/enforce-module-boundaries). ## Code Ownership diff --git a/docs/shared/packages/linter/enforce-module-boundaries.md b/docs/shared/packages/linter/enforce-module-boundaries.md index 4d8061b492..3601b6a11b 100644 --- a/docs/shared/packages/linter/enforce-module-boundaries.md +++ b/docs/shared/packages/linter/enforce-module-boundaries.md @@ -53,7 +53,7 @@ The `depConstraints` is an array of objects representing the constraints defined Read more about the proper usage of this rule: -- [Enforce Project Boundaries](/core-features/enforce-project-boundaries) +- [Enforce Module Boundaries](/core-features/enforce-module-boundaries) - [Ban Dependencies with Certain Tags](/recipes/enforce-module-boundaries/ban-dependencies-with-tags) - [Tag in Multiple Dimensions](/recipes/enforce-module-boundaries/tag-multiple-dimensions) - [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports) diff --git a/docs/shared/react-standalone-tutorial/react-standalone.md b/docs/shared/react-standalone-tutorial/react-standalone.md index d44b8d3500..d2d09da131 100644 --- a/docs/shared/react-standalone-tutorial/react-standalone.md +++ b/docs/shared/react-standalone-tutorial/react-standalone.md @@ -818,7 +818,7 @@ If you have the ESLint plugin installed in your IDE you should immediately see a ![ESLint module boundary error](/shared/images/tutorial-react-standalone/react-standalone-module-boundaries.png) -Learn more about how to [enforce module boundaries](/core-features/enforce-project-boundaries). +Learn more about how to [enforce module boundaries](/core-features/enforce-module-boundaries). ## Next Steps diff --git a/docs/shared/recipes/add-stack/add-lit.md b/docs/shared/recipes/add-stack/add-lit.md index 972fe9f711..d517fd988a 100644 --- a/docs/shared/recipes/add-stack/add-lit.md +++ b/docs/shared/recipes/add-stack/add-lit.md @@ -15,7 +15,7 @@ Because we are not using an Nx plugin for Lit, there are few items we'll have to {% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} -{% pill url="/core-features/enforce-project-boundaries" %}✅ Enforce Project Boundaries{% /pill %} +{% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} {% pill url="/core-features/plugin-features/use-task-executors" %}🚫 Use Task Executors{% /pill %} {% pill url="/core-features/plugin-features/use-code-generators" %}🚫 Use Code Generators{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}🚫 Automate Updating Framework Dependencies{% /pill %} diff --git a/docs/shared/reference/project-configuration.md b/docs/shared/reference/project-configuration.md index 9331f12df6..fcf796b68d 100644 --- a/docs/shared/reference/project-configuration.md +++ b/docs/shared/reference/project-configuration.md @@ -636,7 +636,7 @@ You can annotate your projects with `tags` as follows: {% /tab %} {% /tabs %} -You can [configure lint rules using these tags](/core-features/enforce-project-boundaries) to, for instance, ensure that libraries +You can [configure lint rules using these tags](/core-features/enforce-module-boundaries) to, for instance, ensure that libraries belonging to `myteam` are not depended on by libraries belong to `theirteam`. ### implicitDependencies diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index b1ed208680..317e2cc84b 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -56,7 +56,7 @@ - [Distribute Task Execution](/core-features/distribute-task-execution) - [Integrate with Editors](/core-features/integrate-with-editors) - [Automate Updating Dependencies](/core-features/automate-updating-dependencies) - - [Enforce Project Boundaries](/core-features/enforce-project-boundaries) + - [Enforce Module Boundaries](/core-features/enforce-module-boundaries) - [Plugin Features](/core-features/plugin-features) - [Use Task Executors](/core-features/plugin-features/use-task-executors) - [Use Code Generators](/core-features/plugin-features/use-code-generators) diff --git a/docs/shared/workspace/creating-libraries.md b/docs/shared/workspace/creating-libraries.md index 60d63d4f70..531feb25e0 100644 --- a/docs/shared/workspace/creating-libraries.md +++ b/docs/shared/workspace/creating-libraries.md @@ -16,7 +16,7 @@ The `nx graph` command generates a graph of how apps and libraries depend on eac ### 3. Enforcing Constraints -You can enforce constraints on how different types of libraries depend on each other [using tags](/core-features/enforce-project-boundaries). Following pre-determined conventions on what kind of code can go in different types of libraries allows your tagging system to enforce good architectural patterns. +You can enforce constraints on how different types of libraries depend on each other [using tags](/core-features/enforce-module-boundaries). Following pre-determined conventions on what kind of code can go in different types of libraries allows your tagging system to enforce good architectural patterns. Also, each library defines its own API, which allows for encapsulating logic that other parts of codebase can not access. You can even use a [CODEOWNERS file](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners) to assign ownership of a certain library to a user or team. diff --git a/nx-dev/nx-dev/redirect-rules.js b/nx-dev/nx-dev/redirect-rules.js index 10bf10885f..b8229b0696 100644 --- a/nx-dev/nx-dev/redirect-rules.js +++ b/nx-dev/nx-dev/redirect-rules.js @@ -247,7 +247,9 @@ const diataxis = { '/structure/grouping-libraries': '/concepts/more-concepts/grouping-libraries', '/structure/buildable-and-publishable-libraries': '/concepts/more-concepts/buildable-and-publishable-libraries', - '/structure/monorepo-tags': '/core-features/enforce-project-boundaries', + '/structure/monorepo-tags': '/core-features/enforce-module-boundaries', + '/core-features/enforce-project-boundaries': + '/core-features/enforce-module-boundaries', '/structure/dependency-graph': '/core-features/explore-graph', '/structure/project-graph-plugins': '/recipes/advanced-plugins/project-graph-plugins', diff --git a/nx-dev/ui-conference/src/lib/conf-schedule-short.tsx b/nx-dev/ui-conference/src/lib/conf-schedule-short.tsx index ced760d482..efb1ef55e0 100644 --- a/nx-dev/ui-conference/src/lib/conf-schedule-short.tsx +++ b/nx-dev/ui-conference/src/lib/conf-schedule-short.tsx @@ -86,7 +86,7 @@ export function ConfScheduleShort(): JSX.Element { title: 'Package-based to Integrated: One Small Step or One Giant Leap?', description: `When you have a package-based repo, it can feel like the features of an integrated repo are all the way on the moon. But, in the same way that Neil Armstrong had a whole team of people enabling him to take his one small step, you can take advantage of the hard work of the Nx team to incrementally move your package-based repo toward an integrated repo. - Starting from a package-based repo, we'll enforce project boundaries, create and use code generators and, finally, use task executors and automate updating dependencies. Together, these improvements add up to one giant leap forward in developer experience.`, + Starting from a package-based repo, we'll enforce module boundaries, create and use code generators and, finally, use task executors and automate updating dependencies. Together, these improvements add up to one giant leap forward in developer experience.`, speakers: ['Isaac Mann'], videoUrl: '', },