diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index ed74e04b15..da6082ebfc 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -1594,246 +1594,745 @@ "disableCollapsible": false }, { - "name": "All Recipes »", + "name": "Recipes", "path": "/recipes", - "id": "all", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "CI Setup", - "path": "/recipes/ci/ci-setup", - "id": "ci-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Adopting Nx", - "path": "/recipes/adopting-nx", - "id": "adopting-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Reference", - "path": "/reference", - "id": "reference", + "id": "recipes", "isExternal": false, "children": [ { - "name": "Commands", - "path": "/reference/commands", - "id": "commands", + "name": "Adopting Nx", + "path": "/recipes/adopting-nx", + "id": "adopting-nx", "isExternal": false, - "children": [], + "children": [ + { + "name": "NPM/Yarn/PNPM workspaces", + "path": "/recipes/adopting-nx/adding-to-monorepo", + "id": "adding-to-monorepo", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add to any Project", + "path": "/recipes/adopting-nx/adding-to-existing-project", + "id": "adding-to-existing-project", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx and Lerna", + "path": "/recipes/adopting-nx/lerna-and-nx", + "id": "lerna-and-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Preserving Git Histories", + "path": "/recipes/adopting-nx/preserving-git-histories", + "id": "preserving-git-histories", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manual migration", + "path": "/recipes/adopting-nx/manual", + "id": "manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], "disableCollapsible": false }, { - "name": "nx.json", - "path": "/reference/nx-json", - "id": "nx-json", + "name": "Angular", + "path": "/recipes/angular", + "id": "angular", "isExternal": false, - "children": [], + "children": [ + { + "name": "Migration", + "path": "/recipes/angular/migration", + "id": "migration", + "isExternal": false, + "children": [ + { + "name": "Migrating from Angular CLI", + "path": "/recipes/angular/migration/angular", + "id": "angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating From Multiple Angular CLI Repos", + "path": "/recipes/angular/migration/angular-multiple", + "id": "angular-multiple", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating Angular Application manually", + "path": "/recipes/angular/migration/angular-manual", + "id": "angular-manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating from AngularJS", + "path": "/recipes/angular/migration/angularjs", + "id": "angularjs", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Use Environment Variables in Angular", + "path": "/recipes/angular/use-environment-variables-in-angular", + "id": "use-environment-variables-in-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Tailwind CSS with Angular projects", + "path": "/recipes/angular/using-tailwind-css-with-angular-projects", + "id": "using-tailwind-css-with-angular-projects", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup Module Federation with SSR for Angular", + "path": "/recipes/angular/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "path": "/recipes/angular/dynamic-module-federation-with-angular", + "id": "dynamic-module-federation-with-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup incremental builds for Angular applications", + "path": "/recipes/angular/setup-incremental-builds-angular", + "id": "setup-incremental-builds-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], "disableCollapsible": false }, { - "name": "Project Configuration", - "path": "/reference/project-configuration", - "id": "project-configuration", + "name": "React", + "path": "/recipes/react", + "id": "react", "isExternal": false, - "children": [], + "children": [ + { + "name": "Migrating from CRA", + "path": "/recipes/react/migration-cra", + "id": "migration-cra", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React 18 Migration", + "path": "/recipes/react/react-18", + "id": "react-18", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Native with Nx", + "path": "/recipes/react/react-native", + "id": "react-native", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Remix with Nx", + "path": "/recipes/react/remix", + "id": "remix", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Environment Variables in React", + "path": "/recipes/react/use-environment-variables-in-react", + "id": "use-environment-variables-in-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Tailwind CSS in React", + "path": "/recipes/react/using-tailwind-css-in-react", + "id": "using-tailwind-css-in-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Adding Images, Fonts, and Files", + "path": "/recipes/react/adding-assets-react", + "id": "adding-assets-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup Module Federation with SSR for React", + "path": "/recipes/react/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deploying Next.js applications to Vercel", + "path": "/recipes/react/deploy-nextjs-to-vercel", + "id": "deploy-nextjs-to-vercel", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], "disableCollapsible": false }, { - "name": ".nxignore", - "path": "/reference/nxignore", - "id": "nxignore", + "name": "Node", + "path": "/recipes/node", + "id": "node", "isExternal": false, - "children": [], + "children": [ + { + "name": "Deploying a Node App to Fly.io", + "path": "/recipes/node/node-server-fly-io", + "id": "node-server-fly-io", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add and Deploy Netlify Edge Functions with Node", + "path": "/recipes/node/node-serverless-functions-netlify", + "id": "node-serverless-functions-netlify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deploying AWS lambda in Node.js", + "path": "/recipes/node/node-aws-lambda", + "id": "node-aws-lambda", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], "disableCollapsible": false }, { - "name": "Environment Variables", - "path": "/reference/environment-variables", - "id": "environment-variables", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Glossary", - "path": "/reference/glossary", - "id": "glossary", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Commands", - "path": "/reference/commands", - "id": "commands", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json", - "path": "/reference/nx-json", - "id": "nx-json", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Configuration", - "path": "/reference/project-configuration", - "id": "project-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": ".nxignore", - "path": "/reference/nxignore", - "id": "nxignore", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Environment Variables", - "path": "/reference/environment-variables", - "id": "environment-variables", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Glossary", - "path": "/reference/glossary", - "id": "glossary", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Deprecated", - "path": "/deprecated", - "id": "deprecated", - "isExternal": false, - "children": [ - { - "name": "workspace.json", - "path": "/deprecated/workspace-json", - "id": "workspace-json", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "workspace-lint", - "path": "/deprecated/workspace-lint", - "id": "workspace-lint", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Generators", - "path": "/deprecated/workspace-generators", - "id": "workspace-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Executors", - "path": "/deprecated/workspace-executors", - "id": "workspace-executors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "defaultCollection", - "path": "/deprecated/default-collection", - "id": "default-collection", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "runtimeCacheInputs", - "path": "/deprecated/runtime-cache-inputs", - "id": "runtime-cache-inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "globalImplicitDependencies", - "path": "/deprecated/global-implicit-dependencies", - "id": "global-implicit-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook deprecated docs", - "path": "/deprecated/storybook", + "name": "Storybook", + "path": "/recipes/storybook", "id": "storybook", "isExternal": false, "children": [ { - "name": "Angular: Information about the Storybook targets", - "path": "/deprecated/storybook/angular-storybook-targets", - "id": "angular-storybook-targets", + "name": "One main Storybook instance for all projects", + "path": "/recipes/storybook/one-storybook-for-all", + "id": "one-storybook-for-all", "isExternal": false, "children": [], "disableCollapsible": false }, { - "name": "Angular: The browserTarget", - "path": "/deprecated/storybook/angular-browser-target", - "id": "angular-browser-target", + "name": "One Storybook instance per scope", + "path": "/recipes/storybook/one-storybook-per-scope", + "id": "one-storybook-per-scope", "isExternal": false, "children": [], "disableCollapsible": false }, { - "name": "Angular: Storybook Migration to webpackFinal", - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "id": "migrate-webpack-final-angular", + "name": "One main Storybook instance using Storybook Composition", + "path": "/recipes/storybook/one-storybook-with-composition", + "id": "one-storybook-with-composition", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Enforce Module Boundaries", + "path": "/recipes/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "isExternal": false, + "children": [ + { + "name": "Ban Dependencies with Certain Tags", + "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", + "id": "ban-dependencies-with-tags", "isExternal": false, "children": [], "disableCollapsible": false }, { - "name": "Angular: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "id": "upgrade-storybook-v6-angular", + "name": "Tag in Multiple Dimensions", + "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", + "id": "tag-multiple-dimensions", "isExternal": false, "children": [], "disableCollapsible": false }, { - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "path": "/deprecated/storybook/migrate-webpack-final-react", - "id": "migrate-webpack-final-react", + "name": "Ban External Imports", + "path": "/recipes/enforce-module-boundaries/ban-external-imports", + "id": "ban-external-imports", "isExternal": false, "children": [], "disableCollapsible": false }, { - "name": "React: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "id": "upgrade-storybook-v6-react", + "name": "Tags Allow List", + "path": "/recipes/enforce-module-boundaries/tags-allow-list", + "id": "tags-allow-list", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "CI", + "path": "/recipes/ci", + "id": "ci", + "isExternal": false, + "children": [ + { + "name": "CI Setup", + "path": "/recipes/ci/ci-setup", + "id": "ci-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Prepare applications for deployment via CI", + "path": "/recipes/ci/ci-deployment", + "id": "ci-deployment", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Azure Pipelines", + "path": "/recipes/ci/monorepo-ci-azure", + "id": "monorepo-ci-azure", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up CircleCI", + "path": "/recipes/ci/monorepo-ci-circle-ci", + "id": "monorepo-ci-circle-ci", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up GitHub Actions", + "path": "/recipes/ci/monorepo-ci-github-actions", + "id": "monorepo-ci-github-actions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Jenkins", + "path": "/recipes/ci/monorepo-ci-jenkins", + "id": "monorepo-ci-jenkins", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up GitLab", + "path": "/recipes/ci/monorepo-ci-gitlab", + "id": "monorepo-ci-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Bitbucket", + "path": "/recipes/ci/monorepo-ci-bitbucket-pipelines", + "id": "monorepo-ci-bitbucket-pipelines", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Nx Console", + "path": "/recipes/nx-console", + "id": "nx-console", + "isExternal": false, + "children": [ + { + "name": "Telemetry", + "path": "/recipes/nx-console/console-telemetry", + "id": "console-telemetry", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Generate Command", + "path": "/recipes/nx-console/console-generate-command", + "id": "console-generate-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Command", + "path": "/recipes/nx-console/console-run-command", + "id": "console-run-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add Dependency Command", + "path": "/recipes/nx-console/console-add-dependency-command", + "id": "console-add-dependency-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Pane", + "path": "/recipes/nx-console/console-project-pane", + "id": "console-project-pane", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Keyboard Shortcuts", + "path": "/recipes/nx-console/console-shortcuts", + "id": "console-shortcuts", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Troubleshooting", + "path": "/recipes/troubleshooting", + "id": "troubleshooting", + "isExternal": false, + "children": [ + { + "name": "Resolve Circular Dependencies", + "path": "/recipes/troubleshooting/resolve-circular-dependencies", + "id": "resolve-circular-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting Nx Install Issues", + "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", + "id": "troubleshoot-nx-install-issues", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshoot Cache Misses", + "path": "/recipes/troubleshooting/troubleshoot-cache-misses", + "id": "troubleshoot-cache-misses", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Unknown Local Cache Error", + "path": "/recipes/troubleshooting/unknown-local-cache", + "id": "unknown-local-cache", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Profiling Build Performance", + "path": "/recipes/troubleshooting/performance-profiling", + "id": "performance-profiling", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Tips and tricks", + "path": "/recipes/tips-n-tricks", + "id": "tips-n-tricks", + "isExternal": false, + "children": [ + { + "name": "Configuring ESLint with Typescript", + "path": "/recipes/tips-n-tricks/eslint", + "id": "eslint", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Environment Variables", + "path": "/recipes/tips-n-tricks/define-environment-variables", + "id": "define-environment-variables", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring Browser Support", + "path": "/recipes/tips-n-tricks/browser-support", + "id": "browser-support", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Include Assets in Build", + "path": "/recipes/tips-n-tricks/include-assets-in-build", + "id": "include-assets-in-build", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Include All package.json Files as Projects", + "path": "/recipes/tips-n-tricks/include-all-packagejson", + "id": "include-all-packagejson", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify Dependencies Between Folders", + "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", + "id": "identify-dependencies-between-folders", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Root-Level NPM Scripts with Nx", + "path": "/recipes/tips-n-tricks/root-level-scripts", + "id": "root-level-scripts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Disable Graph Links Created from Analyzing Source Files", + "path": "/recipes/tips-n-tricks/analyze-source-files", + "id": "analyze-source-files", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Watching", + "path": "/recipes/tips-n-tricks/workspace-watching", + "id": "workspace-watching", + "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", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use JavaScript instead TypeScript", + "path": "/recipes/tips-n-tricks/js-and-ts", + "id": "js-and-ts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Altering Migration Process", + "path": "/recipes/tips-n-tricks/advanced-update", + "id": "advanced-update", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Running Custom Commands", + "path": "/recipes/tips-n-tricks/run-commands-executor", + "id": "run-commands-executor", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Other", + "path": "/recipes/other", + "id": "other", + "isExternal": false, + "children": [ + { + "name": "Serverless deployment with Deno Deploy", + "path": "/recipes/other/deno-deploy", + "id": "deno-deploy", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add and Deploy Netlify Edge Functions with Deno", + "path": "/recipes/other/deno-netlify-functions", + "id": "deno-netlify-functions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Rescope Packages from @nrwl to @nx", + "path": "/recipes/other/rescope", + "id": "rescope", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Example Repos", + "path": "/recipes/example-repos", + "id": "example-repos", + "isExternal": false, + "children": [ + { + "name": "Powering Up React Development With Nx", + "path": "/recipes/example-repos/react-nx", + "id": "react-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Apollo GraphQL", + "path": "/recipes/example-repos/apollo-react", + "id": "apollo-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Prisma with NestJS", + "path": "/recipes/example-repos/nestjs-prisma", + "id": "nestjs-prisma", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Mongo with Fastify", + "path": "/recipes/example-repos/mongo-fastify", + "id": "mongo-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Redis with Fastify", + "path": "/recipes/example-repos/redis-fastify", + "id": "redis-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Postgres with Fastify", + "path": "/recipes/example-repos/postgres-fastify", + "id": "postgres-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using PlanetScale with Serverless Fastify", + "path": "/recipes/example-repos/serverless-fastify-planetscale", + "id": "serverless-fastify-planetscale", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Large Repo and Caching", + "path": "/recipes/example-repos/caching", + "id": "caching", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Large Repo and DTE", + "path": "/recipes/example-repos/dte", + "id": "dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Micro-Frontend Example", + "path": "/recipes/example-repos/mfe", + "id": "mfe", "isExternal": false, "children": [], "disableCollapsible": false @@ -1845,318 +2344,7 @@ "disableCollapsible": false }, { - "name": "workspace.json", - "path": "/deprecated/workspace-json", - "id": "workspace-json", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "workspace-lint", - "path": "/deprecated/workspace-lint", - "id": "workspace-lint", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Generators", - "path": "/deprecated/workspace-generators", - "id": "workspace-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Executors", - "path": "/deprecated/workspace-executors", - "id": "workspace-executors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "defaultCollection", - "path": "/deprecated/default-collection", - "id": "default-collection", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "runtimeCacheInputs", - "path": "/deprecated/runtime-cache-inputs", - "id": "runtime-cache-inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "globalImplicitDependencies", - "path": "/deprecated/global-implicit-dependencies", - "id": "global-implicit-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook deprecated docs", - "path": "/deprecated/storybook", - "id": "storybook", - "isExternal": false, - "children": [ - { - "name": "Angular: Information about the Storybook targets", - "path": "/deprecated/storybook/angular-storybook-targets", - "id": "angular-storybook-targets", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: The browserTarget", - "path": "/deprecated/storybook/angular-browser-target", - "id": "angular-browser-target", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Storybook Migration to webpackFinal", - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "id": "migrate-webpack-final-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "id": "upgrade-storybook-v6-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "path": "/deprecated/storybook/migrate-webpack-final-react", - "id": "migrate-webpack-final-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "id": "upgrade-storybook-v6-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Angular: Information about the Storybook targets", - "path": "/deprecated/storybook/angular-storybook-targets", - "id": "angular-storybook-targets", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: The browserTarget", - "path": "/deprecated/storybook/angular-browser-target", - "id": "angular-browser-target", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Storybook Migration to webpackFinal", - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "id": "migrate-webpack-final-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "id": "upgrade-storybook-v6-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "path": "/deprecated/storybook/migrate-webpack-final-react", - "id": "migrate-webpack-final-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "id": "upgrade-storybook-v6-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "See Also", - "path": "/see-also", - "id": "see-also", - "isExternal": false, - "children": [ - { - "name": "Nx Cloud Documentation", - "path": "/nx-cloud/intro/what-is-nx-cloud", - "id": "nx-cloud-documentation", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Cloud Main Site", - "path": "https://nx.app", - "id": "nx-cloud-main-site", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "--skip-nx-cache flag", - "path": "/packages/nx/documents/affected#skip-nx-cache", - "id": "skip-nx-cache-flag", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "tasks-runner-options property", - "path": "/reference/nx-json#tasks-runner-options", - "id": "tasks-runner-options-property", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json reference: inputs and namedInputs", - "path": "/reference/nx-json#inputs-&-namedinputs", - "id": "nxjson-inputs", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Configuration reference: inputs and namedInputs", - "path": "/reference/project-configuration#inputs-&-namedinputs", - "id": "project-config-inputs", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json workspaceLayout property", - "path": "/reference/nx-json#workspace-layout", - "id": "nxjson-workspaceLayout", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json generator defaults", - "path": "/reference/nx-json#generators", - "id": "nxjson-generator-defaults", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Site Map", - "path": "/see-also/sitemap", - "id": "sitemap", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Nx Cloud Documentation", - "path": "/nx-cloud/intro/what-is-nx-cloud", - "id": "nx-cloud-documentation", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "--skip-nx-cache flag", - "path": "/packages/nx/documents/affected#skip-nx-cache", - "id": "skip-nx-cache-flag", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "tasks-runner-options property", - "path": "/reference/nx-json#tasks-runner-options", - "id": "tasks-runner-options-property", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json reference: inputs and namedInputs", - "path": "/reference/nx-json#inputs-&-namedinputs", - "id": "nxjson-inputs", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Configuration reference: inputs and namedInputs", - "path": "/reference/project-configuration#inputs-&-namedinputs", - "id": "project-config-inputs", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json workspaceLayout property", - "path": "/reference/nx-json#workspace-layout", - "id": "nxjson-workspaceLayout", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json generator defaults", - "path": "/reference/nx-json#generators", - "id": "nxjson-generator-defaults", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Site Map", - "path": "/see-also/sitemap", - "id": "sitemap", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ] - }, - { - "id": "recipes", - "menu": [ - { - "name": "Migrating to Nx", + "name": "Adopting Nx", "path": "/recipes/adopting-nx", "id": "adopting-nx", "isExternal": false, @@ -3560,6 +3748,539 @@ "isExternal": false, "children": [], "disableCollapsible": false + }, + { + "name": "Reference", + "path": "/reference", + "id": "reference", + "isExternal": false, + "children": [ + { + "name": "Commands", + "path": "/reference/commands", + "id": "commands", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json", + "path": "/reference/nx-json", + "id": "nx-json", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Configuration", + "path": "/reference/project-configuration", + "id": "project-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": ".nxignore", + "path": "/reference/nxignore", + "id": "nxignore", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Environment Variables", + "path": "/reference/environment-variables", + "id": "environment-variables", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Glossary", + "path": "/reference/glossary", + "id": "glossary", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Commands", + "path": "/reference/commands", + "id": "commands", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json", + "path": "/reference/nx-json", + "id": "nx-json", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Configuration", + "path": "/reference/project-configuration", + "id": "project-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": ".nxignore", + "path": "/reference/nxignore", + "id": "nxignore", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Environment Variables", + "path": "/reference/environment-variables", + "id": "environment-variables", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Glossary", + "path": "/reference/glossary", + "id": "glossary", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deprecated", + "path": "/deprecated", + "id": "deprecated", + "isExternal": false, + "children": [ + { + "name": "workspace.json", + "path": "/deprecated/workspace-json", + "id": "workspace-json", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "workspace-lint", + "path": "/deprecated/workspace-lint", + "id": "workspace-lint", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Generators", + "path": "/deprecated/workspace-generators", + "id": "workspace-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Executors", + "path": "/deprecated/workspace-executors", + "id": "workspace-executors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "defaultCollection", + "path": "/deprecated/default-collection", + "id": "default-collection", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "runtimeCacheInputs", + "path": "/deprecated/runtime-cache-inputs", + "id": "runtime-cache-inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "globalImplicitDependencies", + "path": "/deprecated/global-implicit-dependencies", + "id": "global-implicit-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Storybook deprecated docs", + "path": "/deprecated/storybook", + "id": "storybook", + "isExternal": false, + "children": [ + { + "name": "Angular: Information about the Storybook targets", + "path": "/deprecated/storybook/angular-storybook-targets", + "id": "angular-storybook-targets", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: The browserTarget", + "path": "/deprecated/storybook/angular-browser-target", + "id": "angular-browser-target", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Storybook Migration to webpackFinal", + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "id": "migrate-webpack-final-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "id": "upgrade-storybook-v6-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "path": "/deprecated/storybook/migrate-webpack-final-react", + "id": "migrate-webpack-final-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "id": "upgrade-storybook-v6-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "workspace.json", + "path": "/deprecated/workspace-json", + "id": "workspace-json", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "workspace-lint", + "path": "/deprecated/workspace-lint", + "id": "workspace-lint", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Generators", + "path": "/deprecated/workspace-generators", + "id": "workspace-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Executors", + "path": "/deprecated/workspace-executors", + "id": "workspace-executors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "defaultCollection", + "path": "/deprecated/default-collection", + "id": "default-collection", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "runtimeCacheInputs", + "path": "/deprecated/runtime-cache-inputs", + "id": "runtime-cache-inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "globalImplicitDependencies", + "path": "/deprecated/global-implicit-dependencies", + "id": "global-implicit-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Storybook deprecated docs", + "path": "/deprecated/storybook", + "id": "storybook", + "isExternal": false, + "children": [ + { + "name": "Angular: Information about the Storybook targets", + "path": "/deprecated/storybook/angular-storybook-targets", + "id": "angular-storybook-targets", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: The browserTarget", + "path": "/deprecated/storybook/angular-browser-target", + "id": "angular-browser-target", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Storybook Migration to webpackFinal", + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "id": "migrate-webpack-final-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "id": "upgrade-storybook-v6-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "path": "/deprecated/storybook/migrate-webpack-final-react", + "id": "migrate-webpack-final-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "id": "upgrade-storybook-v6-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Angular: Information about the Storybook targets", + "path": "/deprecated/storybook/angular-storybook-targets", + "id": "angular-storybook-targets", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: The browserTarget", + "path": "/deprecated/storybook/angular-browser-target", + "id": "angular-browser-target", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Storybook Migration to webpackFinal", + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "id": "migrate-webpack-final-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "id": "upgrade-storybook-v6-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "path": "/deprecated/storybook/migrate-webpack-final-react", + "id": "migrate-webpack-final-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "id": "upgrade-storybook-v6-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "See Also", + "path": "/see-also", + "id": "see-also", + "isExternal": false, + "children": [ + { + "name": "Nx Cloud Documentation", + "path": "/nx-cloud/intro/what-is-nx-cloud", + "id": "nx-cloud-documentation", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Cloud Main Site", + "path": "https://nx.app", + "id": "nx-cloud-main-site", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "--skip-nx-cache flag", + "path": "/packages/nx/documents/affected#skip-nx-cache", + "id": "skip-nx-cache-flag", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "tasks-runner-options property", + "path": "/reference/nx-json#tasks-runner-options", + "id": "tasks-runner-options-property", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json reference: inputs and namedInputs", + "path": "/reference/nx-json#inputs-&-namedinputs", + "id": "nxjson-inputs", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Configuration reference: inputs and namedInputs", + "path": "/reference/project-configuration#inputs-&-namedinputs", + "id": "project-config-inputs", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json workspaceLayout property", + "path": "/reference/nx-json#workspace-layout", + "id": "nxjson-workspaceLayout", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json generator defaults", + "path": "/reference/nx-json#generators", + "id": "nxjson-generator-defaults", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Site Map", + "path": "/see-also/sitemap", + "id": "sitemap", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Nx Cloud Documentation", + "path": "/nx-cloud/intro/what-is-nx-cloud", + "id": "nx-cloud-documentation", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "--skip-nx-cache flag", + "path": "/packages/nx/documents/affected#skip-nx-cache", + "id": "skip-nx-cache-flag", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "tasks-runner-options property", + "path": "/reference/nx-json#tasks-runner-options", + "id": "tasks-runner-options-property", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json reference: inputs and namedInputs", + "path": "/reference/nx-json#inputs-&-namedinputs", + "id": "nxjson-inputs", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Configuration reference: inputs and namedInputs", + "path": "/reference/project-configuration#inputs-&-namedinputs", + "id": "project-config-inputs", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json workspaceLayout property", + "path": "/reference/nx-json#workspace-layout", + "id": "nxjson-workspaceLayout", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json generator defaults", + "path": "/reference/nx-json#generators", + "id": "nxjson-generator-defaults", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Site Map", + "path": "/see-also/sitemap", + "id": "sitemap", + "isExternal": false, + "children": [], + "disableCollapsible": false } ] }, diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json index d1d7cc4daf..b6ac9e9510 100644 --- a/docs/generated/manifests/nx.json +++ b/docs/generated/manifests/nx.json @@ -1985,33 +1985,2691 @@ "tags": [] }, "/recipes": { - "id": "all", - "name": "All Recipes »", - "description": "", + "id": "recipes", + "name": "Recipes", + "description": "In depth recipes for common tasks", "file": "", - "itemList": [], + "itemList": [ + { + "id": "adopting-nx", + "name": "Adopting 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": [] + }, + { + "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": "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": [] + }, + { + "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": [] + }, + { + "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": [] + }, + { + "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": [] + }, + { + "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": [] + }, + { + "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": [] + }, + { + "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": [] + }, + { + "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": [] + }, + { + "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": [] + }, + { + "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": [] + }, + { + "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": [] + } + ], "isExternal": false, "path": "/recipes", "tags": [] }, + "/recipes/adopting-nx": { + "id": "adopting-nx", + "name": "Adopting 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": "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": "", + "file": "shared/ci-overview", "itemList": [], "isExternal": false, "path": "/recipes/ci/ci-setup", - "tags": [] + "tags": ["distribute-task-execution"] }, - "/recipes/adopting-nx": { - "id": "adopting-nx", - "name": "Adopting Nx", + "/recipes/ci/ci-deployment": { + "id": "ci-deployment", + "name": "Prepare applications for deployment via CI", "description": "", - "file": "", + "file": "shared/recipes/ci-deployment", "itemList": [], "isExternal": false, - "path": "/recipes/adopting-nx", + "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": [] }, "/reference": { diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index ee48258c31..f4eedb8d41 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -79,6 +79,13 @@ "name": "Customizing Inputs", "path": "/concepts/more-concepts/customizing-inputs" }, + { + "description": "", + "file": "shared/recipes/troubleshoot-cache-misses", + "id": "troubleshoot-cache-misses", + "name": "Troubleshoot Cache Misses", + "path": "/recipes/troubleshooting/troubleshoot-cache-misses" + }, { "description": "", "file": "", @@ -114,13 +121,6 @@ "name": "Project Configuration reference: inputs and namedInputs", "path": "/reference/project-configuration#inputs-&-namedinputs" }, - { - "description": "", - "file": "shared/recipes/troubleshoot-cache-misses", - "id": "troubleshoot-cache-misses", - "name": "Troubleshoot Cache Misses", - "path": "/recipes/troubleshooting/troubleshoot-cache-misses" - }, { "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", @@ -211,13 +211,6 @@ "name": "Illustrated Distributed Task Execution", "path": "/concepts/more-concepts/illustrated-dte" }, - { - "description": "", - "file": "", - "id": "nx-cloud-documentation", - "name": "Nx Cloud Documentation", - "path": "/nx-cloud/intro/what-is-nx-cloud" - }, { "description": "", "file": "shared/ci-overview", @@ -225,6 +218,13 @@ "name": "CI Setup", "path": "/recipes/ci/ci-setup" }, + { + "description": "", + "file": "", + "id": "nx-cloud-documentation", + "name": "Nx Cloud Documentation", + "path": "/nx-cloud/intro/what-is-nx-cloud" + }, { "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", @@ -350,20 +350,6 @@ "name": "Grouping Libraries", "path": "/concepts/more-concepts/grouping-libraries" }, - { - "description": "", - "file": "shared/reference/nxignore", - "id": "nxignore", - "name": ".nxignore", - "path": "/reference/nxignore" - }, - { - "description": "", - "file": "", - "id": "nxjson-workspaceLayout", - "name": "nx.json workspaceLayout property", - "path": "/reference/nx-json#workspace-layout" - }, { "description": "", "file": "shared/recipes/ban-dependencies-with-tags", @@ -392,6 +378,20 @@ "name": "Tags Allow List", "path": "/recipes/enforce-module-boundaries/tags-allow-list" }, + { + "description": "", + "file": "shared/reference/nxignore", + "id": "nxignore", + "name": ".nxignore", + "path": "/reference/nxignore" + }, + { + "description": "", + "file": "", + "id": "nxjson-workspaceLayout", + "name": "nx.json workspaceLayout property", + "path": "/reference/nx-json#workspace-layout" + }, { "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", "file": "generated/packages/generated/packages/nx/documents/format-check", @@ -436,13 +436,6 @@ "name": "Incremental Builds", "path": "/concepts/more-concepts/incremental-builds" }, - { - "description": "", - "file": "shared/reference/project-configuration", - "id": "project-configuration", - "name": "Project Configuration", - "path": "/reference/project-configuration" - }, { "description": "", "file": "shared/recipes/module-federation-with-ssr", @@ -478,6 +471,13 @@ "name": "Running Custom Commands", "path": "/recipes/tips-n-tricks/run-commands-executor" }, + { + "description": "", + "file": "shared/reference/project-configuration", + "id": "project-configuration", + "name": "Project Configuration", + "path": "/reference/project-configuration" + }, { "description": "", "file": "shared/recipes/plugins/local-executors", @@ -649,13 +649,6 @@ } ], "environment-variables": [ - { - "description": "", - "file": "shared/reference/environment-variables", - "id": "environment-variables", - "name": "Environment Variables", - "path": "/reference/environment-variables" - }, { "description": "", "file": "shared/guides/use-environment-variables-in-angular", @@ -683,6 +676,13 @@ "id": "define-environment-variables", "name": "Define Environment Variables", "path": "/recipes/tips-n-tricks/define-environment-variables" + }, + { + "description": "", + "file": "shared/reference/environment-variables", + "id": "environment-variables", + "name": "Environment Variables", + "path": "/reference/environment-variables" } ], "module-federation": [ diff --git a/docs/map.json b/docs/map.json index 37999e97a8..8a9b921c27 100644 --- a/docs/map.json +++ b/docs/map.json @@ -506,22 +506,540 @@ { "name": "Recipes", "id": "recipes", - "description": "Learn quickly how to do things with Nx.", + "description": "In depth recipes for common tasks", "itemList": [ - { - "name": "CI Setup", - "id": "ci-setup", - "path": "/recipes/ci/ci-setup" - }, { "name": "Adopting Nx", "id": "adopting-nx", - "path": "/recipes/adopting-nx" + "description": "Adopting Nx incrementally, on existing project or from scratch.", + "itemList": [ + { + "name": "NPM/Yarn/PNPM workspaces", + "id": "adding-to-monorepo", + "file": "shared/migration/adding-to-monorepo" + }, + { + "name": "Add to any Project", + "id": "adding-to-existing-project", + "file": "shared/migration/adding-to-existing-project" + }, + { + "name": "Nx and Lerna", + "id": "lerna-and-nx", + "file": "shared/migration/lerna-and-nx" + }, + { + "name": "Preserving Git Histories", + "id": "preserving-git-histories", + "file": "shared/migration/preserving-git-histories" + }, + { + "name": "Manual migration", + "id": "manual", + "file": "shared/migration/manual" + } + ] }, { - "name": "All Recipes »", - "id": "all", - "path": "/recipes" + "name": "Angular", + "id": "angular", + "description": "Advanced guides to adopt Nx in Angular.", + "itemList": [ + { + "name": "Migration", + "id": "migration", + "itemList": [ + { + "name": "Migrating from Angular CLI", + "id": "angular", + "file": "shared/migration/migration-angular" + }, + { + "name": "Migrating From Multiple Angular CLI Repos", + "id": "angular-multiple", + "file": "shared/migration/angular-multiple" + }, + { + "name": "Migrating Angular Application manually", + "id": "angular-manual", + "file": "shared/migration/angular-manual" + }, + { + "name": "Migrating from AngularJS", + "id": "angularjs", + "file": "shared/migration/migration-angularjs" + } + ] + }, + { + "name": "Use Environment Variables in Angular", + "id": "use-environment-variables-in-angular", + "tags": ["environment-variables"], + "file": "shared/guides/use-environment-variables-in-angular" + }, + { + "name": "Using Tailwind CSS with Angular projects", + "id": "using-tailwind-css-with-angular-projects", + "file": "shared/guides/using-tailwind-css-with-angular-projects" + }, + { + "name": "Setup Module Federation with SSR for Angular", + "id": "module-federation-with-ssr", + "tags": [ + "use-task-executors", + "module-federation", + "angular" + ], + "file": "shared/recipes/module-federation-with-ssr" + }, + { + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "id": "dynamic-module-federation-with-angular", + "tags": [ + "use-task-executors", + "module-federation", + "angular" + ], + "file": "shared/guides/module-federation/dynamic-mfe-angular" + }, + { + "name": "Setup incremental builds for Angular applications", + "id": "setup-incremental-builds-angular", + "file": "shared/guides/setup-incremental-builds-angular" + } + ] + }, + { + "name": "React", + "id": "react", + "description": "Advanced guides to adopt Nx in React.", + "itemList": [ + { + "name": "Migrating from CRA", + "id": "migration-cra", + "file": "shared/migration/migration-cra" + }, + { + "name": "React 18 Migration", + "id": "react-18", + "file": "shared/guides/react-18" + }, + { + "name": "React Native with Nx", + "id": "react-native", + "file": "shared/guides/react-native" + }, + { + "name": "Remix with Nx", + "id": "remix", + "file": "shared/guides/remix" + }, + { + "name": "Use Environment Variables in React", + "id": "use-environment-variables-in-react", + "tags": ["environment-variables"], + "file": "shared/guides/use-environment-variables-in-react" + }, + { + "name": "Using Tailwind CSS in React", + "id": "using-tailwind-css-in-react", + "file": "shared/guides/using-tailwind-css-in-react" + }, + { + "name": "Adding Images, Fonts, and Files", + "id": "adding-assets-react", + "file": "shared/guides/adding-assets" + }, + { + "name": "Setup Module Federation with SSR for React", + "id": "module-federation-with-ssr", + "tags": ["use-task-executors", "module-federation", "react"], + "file": "shared/recipes/module-federation-with-ssr" + }, + { + "name": "Deploying Next.js applications to Vercel", + "id": "deploy-nextjs-to-vercel", + "file": "shared/recipes/deployment/deploy-nextjs-to-vercel" + } + ] + }, + { + "name": "Node", + "id": "node", + "description": "Set of Node related recipes.", + "itemList": [ + { + "name": "Deploying a Node App to Fly.io", + "id": "node-server-fly-io", + "tags": ["deployment", "node"], + "file": "shared/recipes/deployment/node-server-fly-io" + }, + { + "name": "Add and Deploy Netlify Edge Functions with Node", + "id": "node-serverless-functions-netlify", + "tags": ["deployment", "node"], + "file": "shared/recipes/deployment/node-serverless-functions-netlify" + }, + { + "name": "Deploying AWS lambda in Node.js", + "id": "node-aws-lambda", + "tags": ["deployment", "node"], + "file": "shared/recipes/deployment/node-aws-lambda" + } + ] + }, + { + "name": "Storybook", + "id": "storybook", + "description": "Storybook how tos.", + "itemList": [ + { + "name": "One main Storybook instance for all projects", + "id": "one-storybook-for-all", + "tags": ["storybook"], + "file": "shared/recipes/one-storybook-for-all" + }, + { + "name": "One Storybook instance per scope", + "id": "one-storybook-per-scope", + "tags": ["storybook"], + "file": "shared/recipes/one-storybook-per-scope" + }, + { + "name": "One main Storybook instance using Storybook Composition", + "id": "one-storybook-with-composition", + "tags": ["storybook"], + "file": "shared/recipes/one-storybook-with-composition" + } + ] + }, + { + "name": "Enforce Module Boundaries", + "id": "enforce-module-boundaries", + "description": "Configuring the enforce module boundaries rule", + "itemList": [ + { + "name": "Ban Dependencies with Certain Tags", + "id": "ban-dependencies-with-tags", + "tags": ["enforce-project-boundaries"], + "file": "shared/recipes/ban-dependencies-with-tags" + }, + { + "name": "Tag in Multiple Dimensions", + "id": "tag-multiple-dimensions", + "tags": ["enforce-project-boundaries"], + "file": "shared/recipes/tag-multiple-dimensions" + }, + { + "name": "Ban External Imports", + "id": "ban-external-imports", + "tags": ["enforce-project-boundaries"], + "file": "shared/recipes/ban-external-imports" + }, + { + "name": "Tags Allow List", + "id": "tags-allow-list", + "tags": ["enforce-project-boundaries"], + "file": "shared/recipes/tags-allow-list" + } + ] + }, + { + "name": "CI", + "id": "ci", + "description": "All recipes about how to use Nx to make your CI faster.", + "itemList": [ + { + "name": "CI Setup", + "id": "ci-setup", + "tags": ["distribute-task-execution"], + "file": "shared/ci-overview" + }, + { + "name": "Prepare applications for deployment via CI", + "id": "ci-deployment", + "tags": ["docker", "deploy"], + "file": "shared/recipes/ci-deployment" + }, + { + "name": "Setting up Azure Pipelines", + "id": "monorepo-ci-azure", + "file": "shared/monorepo-ci-azure" + }, + { + "name": "Setting up CircleCI", + "id": "monorepo-ci-circle-ci", + "file": "shared/monorepo-ci-circle-ci" + }, + { + "name": "Setting up GitHub Actions", + "id": "monorepo-ci-github-actions", + "file": "shared/monorepo-ci-github-actions" + }, + { + "name": "Setting up Jenkins", + "id": "monorepo-ci-jenkins", + "file": "shared/monorepo-ci-jenkins" + }, + { + "name": "Setting up GitLab", + "id": "monorepo-ci-gitlab", + "file": "shared/monorepo-ci-gitlab" + }, + { + "name": "Setting up Bitbucket", + "id": "monorepo-ci-bitbucket-pipelines", + "file": "shared/monorepo-ci-bitbucket-pipelines" + } + ] + }, + { + "name": "Nx Console", + "id": "nx-console", + "description": "Checkout all the recipes related to Nx Console.", + "itemList": [ + { + "name": "Telemetry", + "id": "console-telemetry", + "tags": ["integrate-with-editors"], + "file": "shared/recipes/console-telemetry" + }, + { + "name": "Generate Command", + "id": "console-generate-command", + "tags": ["integrate-with-editors"], + "file": "shared/recipes/console-generate-command" + }, + { + "name": "Run Command", + "id": "console-run-command", + "tags": ["integrate-with-editors"], + "file": "shared/recipes/console-run-command" + }, + { + "name": "Add Dependency Command", + "id": "console-add-dependency-command", + "tags": ["integrate-with-editors"], + "file": "shared/recipes/console-add-dependency-command" + }, + { + "name": "Project Pane", + "id": "console-project-pane", + "tags": ["integrate-with-editors"], + "file": "shared/recipes/console-project-pane" + }, + { + "name": "Keyboard Shortcuts", + "id": "console-shortcuts", + "tags": ["integrate-with-editors"], + "file": "shared/recipes/console-shortcuts" + } + ] + }, + { + "name": "Troubleshooting", + "id": "troubleshooting", + "description": "Learn how to troubleshoot common problems.", + "itemList": [ + { + "name": "Resolve Circular Dependencies", + "id": "resolve-circular-dependencies", + "tags": ["explore-graph"], + "file": "shared/recipes/resolve-circular-dependencies" + }, + { + "name": "Troubleshooting Nx Install Issues", + "id": "troubleshoot-nx-install-issues", + "file": "shared/installation/troubleshoot-installation" + }, + { + "name": "Troubleshoot Cache Misses", + "id": "troubleshoot-cache-misses", + "tags": ["cache-task-results"], + "file": "shared/recipes/troubleshoot-cache-misses" + }, + { + "name": "Unknown Local Cache Error", + "id": "unknown-local-cache", + "tags": [], + "file": "shared/guides/unknown-local-cache" + }, + { + "name": "Profiling Build Performance", + "id": "performance-profiling", + "tags": ["use-task-executors", "environment-variables"], + "file": "shared/guides/performance-profiling" + } + ] + }, + { + "name": "Tips and tricks", + "id": "tips-n-tricks", + "description": "Various tips and tricks for using Nx.", + "itemList": [ + { + "name": "Configuring ESLint with Typescript", + "id": "eslint", + "file": "shared/eslint" + }, + { + "name": "Define Environment Variables", + "id": "define-environment-variables", + "tags": ["environment-variables"], + "file": "shared/guides/define-environment-variables" + }, + { + "name": "Configuring Browser Support", + "id": "browser-support", + "file": "shared/guides/browser-support" + }, + { + "name": "Include Assets in Build", + "id": "include-assets-in-build", + "tags": [], + "file": "shared/recipes/include-assets-in-build" + }, + { + "name": "Include All package.json Files as Projects", + "id": "include-all-packagejson", + "tags": [], + "file": "shared/recipes/include-all-packagejson" + }, + { + "name": "Identify Dependencies Between Folders", + "id": "identify-dependencies-between-folders", + "tags": [], + "file": "shared/recipes/identify-dependencies-between-folders" + }, + { + "name": "Run Root-Level NPM Scripts with Nx", + "id": "root-level-scripts", + "tags": ["run-tasks"], + "file": "shared/recipes/root-level-scripts" + }, + { + "name": "Disable Graph Links Created from Analyzing Source Files", + "id": "analyze-source-files", + "tags": ["explore-graph"], + "file": "shared/recipes/analyze-source-files" + }, + { + "name": "Workspace Watching", + "id": "workspace-watching", + "tags": ["workspace-watching"], + "file": "shared/recipes/workspace-watching" + }, + { + "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": "Use JavaScript instead TypeScript", + "id": "js-and-ts", + "file": "shared/guides/js-and-ts" + }, + { + "name": "Altering Migration Process", + "id": "advanced-update", + "tags": ["automate-updating-dependencies"], + "file": "shared/recipes/advanced-update" + }, + { + "name": "Running Custom Commands", + "id": "run-commands-executor", + "tags": ["use-task-executors"], + "file": "shared/running-custom-commands" + } + ] + }, + { + "name": "Other", + "id": "other", + "description": "Other recipes you will find useful.", + "itemList": [ + { + "name": "Serverless deployment with Deno Deploy", + "id": "deno-deploy", + "tags": ["deployment", "deno"], + "file": "shared/recipes/deployment/deno-deploy" + }, + { + "name": "Add and Deploy Netlify Edge Functions with Deno", + "id": "deno-netlify-functions", + "tags": ["deployment", "deno"], + "file": "shared/recipes/deployment/deno-netlify-edge-functions" + }, + { + "name": "Rescope Packages from @nrwl to @nx", + "id": "rescope", + "tags": [], + "file": "shared/recipes/rescope" + } + ] + }, + { + "name": "Example Repos", + "id": "example-repos", + "description": "Examples of different ways to use Nx", + "itemList": [ + { + "name": "Powering Up React Development With Nx", + "id": "react-nx", + "file": "shared/examples/react-nx" + }, + { + "name": "Using Apollo GraphQL", + "id": "apollo-react", + "file": "shared/examples/apollo-react" + }, + { + "name": "Using Prisma with NestJS", + "id": "nestjs-prisma", + "tags": ["database", "node"], + "file": "shared/recipes/database/nestjs-prisma" + }, + { + "name": "Using Mongo with Fastify", + "id": "mongo-fastify", + "tags": ["database", "node"], + "file": "shared/recipes/database/mongo-fastify" + }, + { + "name": "Using Redis with Fastify", + "id": "redis-fastify", + "tags": ["database", "node"], + "file": "shared/recipes/database/redis-fastify" + }, + { + "name": "Using Postgres with Fastify", + "id": "postgres-fastify", + "tags": ["database", "node"], + "file": "shared/recipes/database/postgres-fastify" + }, + { + "name": "Using PlanetScale with Serverless Fastify", + "id": "serverless-fastify-planetscale", + "tags": ["database", "node", "serverless"], + "file": "shared/recipes/database/serverless-fastify-planetscale" + }, + { + "name": "Large Repo and Caching", + "id": "caching", + "file": "shared/examples/caching" + }, + { + "name": "Large Repo and DTE", + "id": "dte", + "file": "shared/examples/dte" + }, + { + "name": "Nx Micro-Frontend Example", + "id": "mfe", + "file": "shared/examples/nx-examples" + } + ] } ] }, @@ -848,538 +1366,6 @@ } ] }, - { - "name": "Recipes", - "id": "nx-recipes", - "description": "In depth recipes for common tasks", - "itemList": [ - { - "name": "Migrating to Nx", - "id": "adopting-nx", - "description": "Adopting Nx incrementally, on existing project or from scratch.", - "itemList": [ - { - "name": "NPM/Yarn/PNPM workspaces", - "id": "adding-to-monorepo", - "file": "shared/migration/adding-to-monorepo" - }, - { - "name": "Add to any Project", - "id": "adding-to-existing-project", - "file": "shared/migration/adding-to-existing-project" - }, - { - "name": "Nx and Lerna", - "id": "lerna-and-nx", - "file": "shared/migration/lerna-and-nx" - }, - { - "name": "Preserving Git Histories", - "id": "preserving-git-histories", - "file": "shared/migration/preserving-git-histories" - }, - { - "name": "Manual migration", - "id": "manual", - "file": "shared/migration/manual" - } - ] - }, - { - "name": "Angular", - "id": "angular", - "description": "Advanced guides to adopt Nx in Angular.", - "itemList": [ - { - "name": "Migration", - "id": "migration", - "itemList": [ - { - "name": "Migrating from Angular CLI", - "id": "angular", - "file": "shared/migration/migration-angular" - }, - { - "name": "Migrating From Multiple Angular CLI Repos", - "id": "angular-multiple", - "file": "shared/migration/angular-multiple" - }, - { - "name": "Migrating Angular Application manually", - "id": "angular-manual", - "file": "shared/migration/angular-manual" - }, - { - "name": "Migrating from AngularJS", - "id": "angularjs", - "file": "shared/migration/migration-angularjs" - } - ] - }, - { - "name": "Use Environment Variables in Angular", - "id": "use-environment-variables-in-angular", - "tags": ["environment-variables"], - "file": "shared/guides/use-environment-variables-in-angular" - }, - { - "name": "Using Tailwind CSS with Angular projects", - "id": "using-tailwind-css-with-angular-projects", - "file": "shared/guides/using-tailwind-css-with-angular-projects" - }, - { - "name": "Setup Module Federation with SSR for Angular", - "id": "module-federation-with-ssr", - "tags": ["use-task-executors", "module-federation", "angular"], - "file": "shared/recipes/module-federation-with-ssr" - }, - { - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "id": "dynamic-module-federation-with-angular", - "tags": ["use-task-executors", "module-federation", "angular"], - "file": "shared/guides/module-federation/dynamic-mfe-angular" - }, - { - "name": "Setup incremental builds for Angular applications", - "id": "setup-incremental-builds-angular", - "file": "shared/guides/setup-incremental-builds-angular" - } - ] - }, - { - "name": "React", - "id": "react", - "description": "Advanced guides to adopt Nx in React.", - "itemList": [ - { - "name": "Migrating from CRA", - "id": "migration-cra", - "file": "shared/migration/migration-cra" - }, - { - "name": "React 18 Migration", - "id": "react-18", - "file": "shared/guides/react-18" - }, - { - "name": "React Native with Nx", - "id": "react-native", - "file": "shared/guides/react-native" - }, - { - "name": "Remix with Nx", - "id": "remix", - "file": "shared/guides/remix" - }, - { - "name": "Use Environment Variables in React", - "id": "use-environment-variables-in-react", - "tags": ["environment-variables"], - "file": "shared/guides/use-environment-variables-in-react" - }, - { - "name": "Using Tailwind CSS in React", - "id": "using-tailwind-css-in-react", - "file": "shared/guides/using-tailwind-css-in-react" - }, - { - "name": "Adding Images, Fonts, and Files", - "id": "adding-assets-react", - "file": "shared/guides/adding-assets" - }, - { - "name": "Setup Module Federation with SSR for React", - "id": "module-federation-with-ssr", - "tags": ["use-task-executors", "module-federation", "react"], - "file": "shared/recipes/module-federation-with-ssr" - }, - { - "name": "Deploying Next.js applications to Vercel", - "id": "deploy-nextjs-to-vercel", - "file": "shared/recipes/deployment/deploy-nextjs-to-vercel" - } - ] - }, - { - "name": "Node", - "id": "node", - "description": "Set of Node related recipes.", - "itemList": [ - { - "name": "Deploying a Node App to Fly.io", - "id": "node-server-fly-io", - "tags": ["deployment", "node"], - "file": "shared/recipes/deployment/node-server-fly-io" - }, - { - "name": "Add and Deploy Netlify Edge Functions with Node", - "id": "node-serverless-functions-netlify", - "tags": ["deployment", "node"], - "file": "shared/recipes/deployment/node-serverless-functions-netlify" - }, - { - "name": "Deploying AWS lambda in Node.js", - "id": "node-aws-lambda", - "tags": ["deployment", "node"], - "file": "shared/recipes/deployment/node-aws-lambda" - } - ] - }, - { - "name": "Storybook", - "id": "storybook", - "description": "Storybook how tos.", - "itemList": [ - { - "name": "One main Storybook instance for all projects", - "id": "one-storybook-for-all", - "tags": ["storybook"], - "file": "shared/recipes/one-storybook-for-all" - }, - { - "name": "One Storybook instance per scope", - "id": "one-storybook-per-scope", - "tags": ["storybook"], - "file": "shared/recipes/one-storybook-per-scope" - }, - { - "name": "One main Storybook instance using Storybook Composition", - "id": "one-storybook-with-composition", - "tags": ["storybook"], - "file": "shared/recipes/one-storybook-with-composition" - } - ] - }, - { - "name": "Enforce Module Boundaries", - "id": "enforce-module-boundaries", - "description": "Configuring the enforce module boundaries rule", - "itemList": [ - { - "name": "Ban Dependencies with Certain Tags", - "id": "ban-dependencies-with-tags", - "tags": ["enforce-project-boundaries"], - "file": "shared/recipes/ban-dependencies-with-tags" - }, - { - "name": "Tag in Multiple Dimensions", - "id": "tag-multiple-dimensions", - "tags": ["enforce-project-boundaries"], - "file": "shared/recipes/tag-multiple-dimensions" - }, - { - "name": "Ban External Imports", - "id": "ban-external-imports", - "tags": ["enforce-project-boundaries"], - "file": "shared/recipes/ban-external-imports" - }, - { - "name": "Tags Allow List", - "id": "tags-allow-list", - "tags": ["enforce-project-boundaries"], - "file": "shared/recipes/tags-allow-list" - } - ] - }, - { - "name": "CI", - "id": "ci", - "description": "All recipes about how to use Nx to make your CI faster.", - "itemList": [ - { - "name": "CI Setup", - "id": "ci-setup", - "tags": ["distribute-task-execution"], - "file": "shared/ci-overview" - }, - { - "name": "Prepare applications for deployment via CI", - "id": "ci-deployment", - "tags": ["docker", "deploy"], - "file": "shared/recipes/ci-deployment" - }, - { - "name": "Setting up Azure Pipelines", - "id": "monorepo-ci-azure", - "file": "shared/monorepo-ci-azure" - }, - { - "name": "Setting up CircleCI", - "id": "monorepo-ci-circle-ci", - "file": "shared/monorepo-ci-circle-ci" - }, - { - "name": "Setting up GitHub Actions", - "id": "monorepo-ci-github-actions", - "file": "shared/monorepo-ci-github-actions" - }, - { - "name": "Setting up Jenkins", - "id": "monorepo-ci-jenkins", - "file": "shared/monorepo-ci-jenkins" - }, - { - "name": "Setting up GitLab", - "id": "monorepo-ci-gitlab", - "file": "shared/monorepo-ci-gitlab" - }, - { - "name": "Setting up Bitbucket", - "id": "monorepo-ci-bitbucket-pipelines", - "file": "shared/monorepo-ci-bitbucket-pipelines" - } - ] - }, - { - "name": "Nx Console", - "id": "nx-console", - "description": "Checkout all the recipes related to Nx Console.", - "itemList": [ - { - "name": "Telemetry", - "id": "console-telemetry", - "tags": ["integrate-with-editors"], - "file": "shared/recipes/console-telemetry" - }, - { - "name": "Generate Command", - "id": "console-generate-command", - "tags": ["integrate-with-editors"], - "file": "shared/recipes/console-generate-command" - }, - { - "name": "Run Command", - "id": "console-run-command", - "tags": ["integrate-with-editors"], - "file": "shared/recipes/console-run-command" - }, - { - "name": "Add Dependency Command", - "id": "console-add-dependency-command", - "tags": ["integrate-with-editors"], - "file": "shared/recipes/console-add-dependency-command" - }, - { - "name": "Project Pane", - "id": "console-project-pane", - "tags": ["integrate-with-editors"], - "file": "shared/recipes/console-project-pane" - }, - { - "name": "Keyboard Shortcuts", - "id": "console-shortcuts", - "tags": ["integrate-with-editors"], - "file": "shared/recipes/console-shortcuts" - } - ] - }, - { - "name": "Troubleshooting", - "id": "troubleshooting", - "description": "Learn how to troubleshoot common problems.", - "itemList": [ - { - "name": "Resolve Circular Dependencies", - "id": "resolve-circular-dependencies", - "tags": ["explore-graph"], - "file": "shared/recipes/resolve-circular-dependencies" - }, - { - "name": "Troubleshooting Nx Install Issues", - "id": "troubleshoot-nx-install-issues", - "file": "shared/installation/troubleshoot-installation" - }, - { - "name": "Troubleshoot Cache Misses", - "id": "troubleshoot-cache-misses", - "tags": ["cache-task-results"], - "file": "shared/recipes/troubleshoot-cache-misses" - }, - { - "name": "Unknown Local Cache Error", - "id": "unknown-local-cache", - "tags": [], - "file": "shared/guides/unknown-local-cache" - }, - { - "name": "Profiling Build Performance", - "id": "performance-profiling", - "tags": ["use-task-executors", "environment-variables"], - "file": "shared/guides/performance-profiling" - } - ] - }, - { - "name": "Tips and tricks", - "id": "tips-n-tricks", - "description": "Various tips and tricks for using Nx.", - "itemList": [ - { - "name": "Configuring ESLint with Typescript", - "id": "eslint", - "file": "shared/eslint" - }, - { - "name": "Define Environment Variables", - "id": "define-environment-variables", - "tags": ["environment-variables"], - "file": "shared/guides/define-environment-variables" - }, - { - "name": "Configuring Browser Support", - "id": "browser-support", - "file": "shared/guides/browser-support" - }, - { - "name": "Include Assets in Build", - "id": "include-assets-in-build", - "tags": [], - "file": "shared/recipes/include-assets-in-build" - }, - { - "name": "Include All package.json Files as Projects", - "id": "include-all-packagejson", - "tags": [], - "file": "shared/recipes/include-all-packagejson" - }, - { - "name": "Identify Dependencies Between Folders", - "id": "identify-dependencies-between-folders", - "tags": [], - "file": "shared/recipes/identify-dependencies-between-folders" - }, - { - "name": "Run Root-Level NPM Scripts with Nx", - "id": "root-level-scripts", - "tags": ["run-tasks"], - "file": "shared/recipes/root-level-scripts" - }, - { - "name": "Disable Graph Links Created from Analyzing Source Files", - "id": "analyze-source-files", - "tags": ["explore-graph"], - "file": "shared/recipes/analyze-source-files" - }, - { - "name": "Workspace Watching", - "id": "workspace-watching", - "tags": ["workspace-watching"], - "file": "shared/recipes/workspace-watching" - }, - { - "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": "Use JavaScript instead TypeScript", - "id": "js-and-ts", - "file": "shared/guides/js-and-ts" - }, - { - "name": "Altering Migration Process", - "id": "advanced-update", - "tags": ["automate-updating-dependencies"], - "file": "shared/recipes/advanced-update" - }, - { - "name": "Running Custom Commands", - "id": "run-commands-executor", - "tags": ["use-task-executors"], - "file": "shared/running-custom-commands" - } - ] - }, - { - "name": "Other", - "id": "other", - "description": "Other recipes you will find useful.", - "itemList": [ - { - "name": "Serverless deployment with Deno Deploy", - "id": "deno-deploy", - "tags": ["deployment", "deno"], - "file": "shared/recipes/deployment/deno-deploy" - }, - { - "name": "Add and Deploy Netlify Edge Functions with Deno", - "id": "deno-netlify-functions", - "tags": ["deployment", "deno"], - "file": "shared/recipes/deployment/deno-netlify-edge-functions" - }, - { - "name": "Rescope Packages from @nrwl to @nx", - "id": "rescope", - "tags": [], - "file": "shared/recipes/rescope" - } - ] - }, - { - "name": "Example Repos", - "id": "example-repos", - "description": "Examples of different ways to use Nx", - "itemList": [ - { - "name": "Powering Up React Development With Nx", - "id": "react-nx", - "file": "shared/examples/react-nx" - }, - { - "name": "Using Apollo GraphQL", - "id": "apollo-react", - "file": "shared/examples/apollo-react" - }, - { - "name": "Using Prisma with NestJS", - "id": "nestjs-prisma", - "tags": ["database", "node"], - "file": "shared/recipes/database/nestjs-prisma" - }, - { - "name": "Using Mongo with Fastify", - "id": "mongo-fastify", - "tags": ["database", "node"], - "file": "shared/recipes/database/mongo-fastify" - }, - { - "name": "Using Redis with Fastify", - "id": "redis-fastify", - "tags": ["database", "node"], - "file": "shared/recipes/database/redis-fastify" - }, - { - "name": "Using Postgres with Fastify", - "id": "postgres-fastify", - "tags": ["database", "node"], - "file": "shared/recipes/database/postgres-fastify" - }, - { - "name": "Using PlanetScale with Serverless Fastify", - "id": "serverless-fastify-planetscale", - "tags": ["database", "node", "serverless"], - "file": "shared/recipes/database/serverless-fastify-planetscale" - }, - { - "name": "Large Repo and Caching", - "id": "caching", - "file": "shared/examples/caching" - }, - { - "name": "Large Repo and DTE", - "id": "dte", - "file": "shared/examples/dte" - }, - { - "name": "Nx Micro-Frontend Example", - "id": "mfe", - "file": "shared/examples/nx-examples" - } - ] - } - ] - }, { "name": "Nx Cloud", "id": "nx-cloud-documentation", diff --git a/docs/shared/migration/migration-angular.md b/docs/shared/migration/migration-angular.md index bac712c24a..d8f8f50dbe 100644 --- a/docs/shared/migration/migration-angular.md +++ b/docs/shared/migration/migration-angular.md @@ -77,11 +77,11 @@ After the changes are applied, your workspace file structure should look similar ### Older Versions of Angular -Support for workspaces with multiple applications and libraries was added in Nx v14.1.0. If you are migrating using an older version of Nx, your workspace can only contain one application and no libraries in order to use the automated migration, otherwise, you can still [migrate manually](/recipes/angular/migration/manual). +Support for workspaces with multiple applications and libraries was added in Nx v14.1.0. If you are migrating using an older version of Nx, your workspace can only contain one application and no libraries in order to use the automated migration, otherwise, you can still [migrate manually](/recipes/angular/migration/angular-manual). ### Modified Folder Structure -The automated migration supports Angular CLI workspaces with a standard structure, configurations and features. If your workspace has deviated from what the Angular CLI generates, you might not be able to use the automated migration and you will need to [manually migrate your workspace](/recipes/angular/migration/manual). +The automated migration supports Angular CLI workspaces with a standard structure, configurations and features. If your workspace has deviated from what the Angular CLI generates, you might not be able to use the automated migration and you will need to [manually migrate your workspace](/recipes/angular/migration/angular-manual). Currently, the automated migration supports workspaces using the following executors (builders): @@ -152,8 +152,8 @@ If you're not ready to make the change yet, you can come back to this later: {% card title="Nx and the Angular CLI" description="Differences between Nx and the Angular CLI" type="documentation" url="/concepts/more-concepts/nx-and-angular" /%} -{% card title="Angular CLI manual migration" description="Add Nx by hand" type="documentation" url="/recipes/angular/migration/manual" /%} +{% card title="Angular CLI manual migration" description="Add Nx by hand" type="documentation" url="/recipes/angular/migration/angular-manual" /%} -{% card title="Multiple Angular Repositories to one Nx Workspace" description="Combine multiple Angular CLI workspaces into one Nx workspace" type="documentation" url="/recipes/angular/migration/multiple" /%} +{% card title="Multiple Angular Repositories to one Nx Workspace" description="Combine multiple Angular CLI workspaces into one Nx workspace" type="documentation" url="/recipes/angular/migration/angular-multiple" /%} {% /cards %} diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index b40d9badbc..b224ee6267 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -89,9 +89,98 @@ - [How the Project Graph is Built](/concepts/more-concepts/how-project-graph-is-built) - [Nx and the Nx Wrapper](/concepts/more-concepts/nx-and-the-wrapper) - [Managing your Global Nx Installation](/concepts/more-concepts/global-nx) - - [All Recipes »](/recipes) - - [CI Setup](/recipes/ci/ci-setup) + - [Recipes](/recipes) - [Adopting Nx](/recipes/adopting-nx) + - [NPM/Yarn/PNPM workspaces](/recipes/adopting-nx/adding-to-monorepo) + - [Add to any Project](/recipes/adopting-nx/adding-to-existing-project) + - [Nx and Lerna](/recipes/adopting-nx/lerna-and-nx) + - [Preserving Git Histories](/recipes/adopting-nx/preserving-git-histories) + - [Manual migration](/recipes/adopting-nx/manual) + - [Angular](/recipes/angular) + - [Migration](/recipes/angular/migration) + - [Migrating from Angular CLI](/recipes/angular/migration/angular) + - [Migrating From Multiple Angular CLI Repos](/recipes/angular/migration/angular-multiple) + - [Migrating Angular Application manually](/recipes/angular/migration/angular-manual) + - [Migrating from AngularJS](/recipes/angular/migration/angularjs) + - [Use Environment Variables in Angular](/recipes/angular/use-environment-variables-in-angular) + - [Using Tailwind CSS with Angular projects](/recipes/angular/using-tailwind-css-with-angular-projects) + - [Setup Module Federation with SSR for Angular](/recipes/angular/module-federation-with-ssr) + - [Advanced Micro Frontends with Angular using Dynamic Federation](/recipes/angular/dynamic-module-federation-with-angular) + - [Setup incremental builds for Angular applications](/recipes/angular/setup-incremental-builds-angular) + - [React](/recipes/react) + - [Migrating from CRA](/recipes/react/migration-cra) + - [React 18 Migration](/recipes/react/react-18) + - [React Native with Nx](/recipes/react/react-native) + - [Remix with Nx](/recipes/react/remix) + - [Use Environment Variables in React](/recipes/react/use-environment-variables-in-react) + - [Using Tailwind CSS in React](/recipes/react/using-tailwind-css-in-react) + - [Adding Images, Fonts, and Files](/recipes/react/adding-assets-react) + - [Setup Module Federation with SSR for React](/recipes/react/module-federation-with-ssr) + - [Deploying Next.js applications to Vercel](/recipes/react/deploy-nextjs-to-vercel) + - [Node](/recipes/node) + - [Deploying a Node App to Fly.io](/recipes/node/node-server-fly-io) + - [Add and Deploy Netlify Edge Functions with Node](/recipes/node/node-serverless-functions-netlify) + - [Deploying AWS lambda in Node.js](/recipes/node/node-aws-lambda) + - [Storybook](/recipes/storybook) + - [One main Storybook instance for all projects](/recipes/storybook/one-storybook-for-all) + - [One Storybook instance per scope](/recipes/storybook/one-storybook-per-scope) + - [One main Storybook instance using Storybook Composition](/recipes/storybook/one-storybook-with-composition) + - [Enforce Module Boundaries](/recipes/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) + - [Tags Allow List](/recipes/enforce-module-boundaries/tags-allow-list) + - [CI](/recipes/ci) + - [CI Setup](/recipes/ci/ci-setup) + - [Prepare applications for deployment via CI](/recipes/ci/ci-deployment) + - [Setting up Azure Pipelines](/recipes/ci/monorepo-ci-azure) + - [Setting up CircleCI](/recipes/ci/monorepo-ci-circle-ci) + - [Setting up GitHub Actions](/recipes/ci/monorepo-ci-github-actions) + - [Setting up Jenkins](/recipes/ci/monorepo-ci-jenkins) + - [Setting up GitLab](/recipes/ci/monorepo-ci-gitlab) + - [Setting up Bitbucket](/recipes/ci/monorepo-ci-bitbucket-pipelines) + - [Nx Console](/recipes/nx-console) + - [Telemetry](/recipes/nx-console/console-telemetry) + - [Generate Command](/recipes/nx-console/console-generate-command) + - [Run Command](/recipes/nx-console/console-run-command) + - [Add Dependency Command](/recipes/nx-console/console-add-dependency-command) + - [Project Pane](/recipes/nx-console/console-project-pane) + - [Keyboard Shortcuts](/recipes/nx-console/console-shortcuts) + - [Troubleshooting](/recipes/troubleshooting) + - [Resolve Circular Dependencies](/recipes/troubleshooting/resolve-circular-dependencies) + - [Troubleshooting Nx Install Issues](/recipes/troubleshooting/troubleshoot-nx-install-issues) + - [Troubleshoot Cache Misses](/recipes/troubleshooting/troubleshoot-cache-misses) + - [Unknown Local Cache Error](/recipes/troubleshooting/unknown-local-cache) + - [Profiling Build Performance](/recipes/troubleshooting/performance-profiling) + - [Tips and tricks](/recipes/tips-n-tricks) + - [Configuring ESLint with Typescript](/recipes/tips-n-tricks/eslint) + - [Define Environment Variables](/recipes/tips-n-tricks/define-environment-variables) + - [Configuring Browser Support](/recipes/tips-n-tricks/browser-support) + - [Include Assets in Build](/recipes/tips-n-tricks/include-assets-in-build) + - [Include All package.json Files as Projects](/recipes/tips-n-tricks/include-all-packagejson) + - [Identify Dependencies Between Folders](/recipes/tips-n-tricks/identify-dependencies-between-folders) + - [Run Root-Level NPM Scripts with Nx](/recipes/tips-n-tricks/root-level-scripts) + - [Disable Graph Links Created from Analyzing Source Files](/recipes/tips-n-tricks/analyze-source-files) + - [Workspace Watching](/recipes/tips-n-tricks/workspace-watching) + - [Convert from a Standalone Repository to an Integrated Repository](/recipes/tips-n-tricks/standalone-to-integrated) + - [Use JavaScript instead TypeScript](/recipes/tips-n-tricks/js-and-ts) + - [Altering Migration Process](/recipes/tips-n-tricks/advanced-update) + - [Running Custom Commands](/recipes/tips-n-tricks/run-commands-executor) + - [Other](/recipes/other) + - [Serverless deployment with Deno Deploy](/recipes/other/deno-deploy) + - [Add and Deploy Netlify Edge Functions with Deno](/recipes/other/deno-netlify-functions) + - [Rescope Packages from @nrwl to @nx](/recipes/other/rescope) + - [Example Repos](/recipes/example-repos) + - [Powering Up React Development With Nx](/recipes/example-repos/react-nx) + - [Using Apollo GraphQL](/recipes/example-repos/apollo-react) + - [Using Prisma with NestJS](/recipes/example-repos/nestjs-prisma) + - [Using Mongo with Fastify](/recipes/example-repos/mongo-fastify) + - [Using Redis with Fastify](/recipes/example-repos/redis-fastify) + - [Using Postgres with Fastify](/recipes/example-repos/postgres-fastify) + - [Using PlanetScale with Serverless Fastify](/recipes/example-repos/serverless-fastify-planetscale) + - [Large Repo and Caching](/recipes/example-repos/caching) + - [Large Repo and DTE](/recipes/example-repos/dte) + - [Nx Micro-Frontend Example](/recipes/example-repos/mfe) - [Reference](/reference) - [Commands](/reference/commands) - [nx.json](/reference/nx-json) @@ -117,100 +206,6 @@ - [See Also](/see-also) - [Site Map](/see-also/sitemap) -- Recipes - - - [Migrating to Nx](/recipes/adopting-nx) - - [NPM/Yarn/PNPM workspaces](/recipes/adopting-nx/adding-to-monorepo) - - [Add to any Project](/recipes/adopting-nx/adding-to-existing-project) - - [Nx and Lerna](/recipes/adopting-nx/lerna-and-nx) - - [Preserving Git Histories](/recipes/adopting-nx/preserving-git-histories) - - [Manual migration](/recipes/adopting-nx/manual) - - [Angular](/recipes/angular) - - [Migration](/recipes/angular/migration) - - [Migrating from Angular CLI](/recipes/angular/migration/angular) - - [Migrating From Multiple Angular CLI Repos](/recipes/angular/migration/angular-multiple) - - [Migrating Angular Application manually](/recipes/angular/migration/angular-manual) - - [Migrating from AngularJS](/recipes/angular/migration/angularjs) - - [Use Environment Variables in Angular](/recipes/angular/use-environment-variables-in-angular) - - [Using Tailwind CSS with Angular projects](/recipes/angular/using-tailwind-css-with-angular-projects) - - [Setup Module Federation with SSR for Angular](/recipes/angular/module-federation-with-ssr) - - [Advanced Micro Frontends with Angular using Dynamic Federation](/recipes/angular/dynamic-module-federation-with-angular) - - [Setup incremental builds for Angular applications](/recipes/angular/setup-incremental-builds-angular) - - [React](/recipes/react) - - [Migrating from CRA](/recipes/react/migration-cra) - - [React 18 Migration](/recipes/react/react-18) - - [React Native with Nx](/recipes/react/react-native) - - [Remix with Nx](/recipes/react/remix) - - [Use Environment Variables in React](/recipes/react/use-environment-variables-in-react) - - [Using Tailwind CSS in React](/recipes/react/using-tailwind-css-in-react) - - [Adding Images, Fonts, and Files](/recipes/react/adding-assets-react) - - [Setup Module Federation with SSR for React](/recipes/react/module-federation-with-ssr) - - [Deploying Next.js applications to Vercel](/recipes/react/deploy-nextjs-to-vercel) - - [Node](/recipes/node) - - [Deploying a Node App to Fly.io](/recipes/node/node-server-fly-io) - - [Add and Deploy Netlify Edge Functions with Node](/recipes/node/node-serverless-functions-netlify) - - [Deploying AWS lambda in Node.js](/recipes/node/node-aws-lambda) - - [Storybook](/recipes/storybook) - - [One main Storybook instance for all projects](/recipes/storybook/one-storybook-for-all) - - [One Storybook instance per scope](/recipes/storybook/one-storybook-per-scope) - - [One main Storybook instance using Storybook Composition](/recipes/storybook/one-storybook-with-composition) - - [Enforce Module Boundaries](/recipes/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) - - [Tags Allow List](/recipes/enforce-module-boundaries/tags-allow-list) - - [CI](/recipes/ci) - - [CI Setup](/recipes/ci/ci-setup) - - [Prepare applications for deployment via CI](/recipes/ci/ci-deployment) - - [Setting up Azure Pipelines](/recipes/ci/monorepo-ci-azure) - - [Setting up CircleCI](/recipes/ci/monorepo-ci-circle-ci) - - [Setting up GitHub Actions](/recipes/ci/monorepo-ci-github-actions) - - [Setting up Jenkins](/recipes/ci/monorepo-ci-jenkins) - - [Setting up GitLab](/recipes/ci/monorepo-ci-gitlab) - - [Setting up Bitbucket](/recipes/ci/monorepo-ci-bitbucket-pipelines) - - [Nx Console](/recipes/nx-console) - - [Telemetry](/recipes/nx-console/console-telemetry) - - [Generate Command](/recipes/nx-console/console-generate-command) - - [Run Command](/recipes/nx-console/console-run-command) - - [Add Dependency Command](/recipes/nx-console/console-add-dependency-command) - - [Project Pane](/recipes/nx-console/console-project-pane) - - [Keyboard Shortcuts](/recipes/nx-console/console-shortcuts) - - [Troubleshooting](/recipes/troubleshooting) - - [Resolve Circular Dependencies](/recipes/troubleshooting/resolve-circular-dependencies) - - [Troubleshooting Nx Install Issues](/recipes/troubleshooting/troubleshoot-nx-install-issues) - - [Troubleshoot Cache Misses](/recipes/troubleshooting/troubleshoot-cache-misses) - - [Unknown Local Cache Error](/recipes/troubleshooting/unknown-local-cache) - - [Profiling Build Performance](/recipes/troubleshooting/performance-profiling) - - [Tips and tricks](/recipes/tips-n-tricks) - - [Configuring ESLint with Typescript](/recipes/tips-n-tricks/eslint) - - [Define Environment Variables](/recipes/tips-n-tricks/define-environment-variables) - - [Configuring Browser Support](/recipes/tips-n-tricks/browser-support) - - [Include Assets in Build](/recipes/tips-n-tricks/include-assets-in-build) - - [Include All package.json Files as Projects](/recipes/tips-n-tricks/include-all-packagejson) - - [Identify Dependencies Between Folders](/recipes/tips-n-tricks/identify-dependencies-between-folders) - - [Run Root-Level NPM Scripts with Nx](/recipes/tips-n-tricks/root-level-scripts) - - [Disable Graph Links Created from Analyzing Source Files](/recipes/tips-n-tricks/analyze-source-files) - - [Workspace Watching](/recipes/tips-n-tricks/workspace-watching) - - [Convert from a Standalone Repository to an Integrated Repository](/recipes/tips-n-tricks/standalone-to-integrated) - - [Use JavaScript instead TypeScript](/recipes/tips-n-tricks/js-and-ts) - - [Altering Migration Process](/recipes/tips-n-tricks/advanced-update) - - [Running Custom Commands](/recipes/tips-n-tricks/run-commands-executor) - - [Other](/recipes/other) - - [Serverless deployment with Deno Deploy](/recipes/other/deno-deploy) - - [Add and Deploy Netlify Edge Functions with Deno](/recipes/other/deno-netlify-functions) - - [Rescope Packages from @nrwl to @nx](/recipes/other/rescope) - - [Example Repos](/recipes/example-repos) - - [Powering Up React Development With Nx](/recipes/example-repos/react-nx) - - [Using Apollo GraphQL](/recipes/example-repos/apollo-react) - - [Using Prisma with NestJS](/recipes/example-repos/nestjs-prisma) - - [Using Mongo with Fastify](/recipes/example-repos/mongo-fastify) - - [Using Redis with Fastify](/recipes/example-repos/redis-fastify) - - [Using Postgres with Fastify](/recipes/example-repos/postgres-fastify) - - [Using PlanetScale with Serverless Fastify](/recipes/example-repos/serverless-fastify-planetscale) - - [Large Repo and Caching](/recipes/example-repos/caching) - - [Large Repo and DTE](/recipes/example-repos/dte) - - [Nx Micro-Frontend Example](/recipes/example-repos/mfe) - - Extending-nx - [Intro](/extending-nx/intro) diff --git a/nx-dev/nx-dev/pages/[...segments].tsx b/nx-dev/nx-dev/pages/[...segments].tsx index e3e4397803..249ddce33c 100644 --- a/nx-dev/nx-dev/pages/[...segments].tsx +++ b/nx-dev/nx-dev/pages/[...segments].tsx @@ -80,7 +80,7 @@ export default function NxDocumentation({ } export const getStaticPaths: GetStaticPaths = () => { - const reservedPaths = ['/recipes', '/nx-cloud', '/packages', '/changelog']; + const reservedPaths = ['/nx-cloud', '/packages', '/changelog']; return { paths: nxDocumentationApi .getSlugsStaticDocumentPaths() diff --git a/nx-dev/nx-dev/pages/recipes/[...segments].tsx b/nx-dev/nx-dev/pages/recipes/[...segments].tsx deleted file mode 100644 index 68e3e444a3..0000000000 --- a/nx-dev/nx-dev/pages/recipes/[...segments].tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { getBasicRecipesSection } from '@nx/nx-dev/data-access-menu'; -import { DocViewer } from '@nx/nx-dev/feature-doc-viewer'; -import { ProcessedDocument, RelatedDocument } from '@nx/nx-dev/models-document'; -import { Menu, MenuItem } from '@nx/nx-dev/models-menu'; -import { DocumentationHeader, SidebarContainer } from '@nx/nx-dev/ui-common'; -import { GetStaticPaths, GetStaticProps } from 'next'; -import { useRouter } from 'next/router'; -import { useEffect, useRef } from 'react'; -import { menusApi } from '../../lib/menus.api'; -import { useNavToggle } from '../../lib/navigation-toggle.effect'; -import { nxRecipesApi } from '../../lib/recipes.api'; -import { tagsApi } from '../../lib/tags.api'; - -export default function Recipes({ - document, - menu, - relatedDocuments, -}: { - document: ProcessedDocument; - menu: MenuItem[]; - relatedDocuments: RelatedDocument[]; -}): JSX.Element { - const router = useRouter(); - const { toggleNav, navIsOpen } = useNavToggle(); - const wrapperElement = useRef(null); - - useEffect(() => { - const handleRouteChange = (url: string) => { - if (url.includes('#')) return; - if (!wrapperElement) return; - - (wrapperElement as any).current.scrollTo({ - top: 0, - left: 0, - behavior: 'smooth', - }); - }; - - router.events.on('routeChangeComplete', handleRouteChange); - return () => router.events.off('routeChangeComplete', handleRouteChange); - }, [router, wrapperElement]); - - const vm: { - document: ProcessedDocument; - menu: Menu; - relatedDocuments: RelatedDocument[]; - } = { - document, - menu: { - sections: [getBasicRecipesSection(menu)], - }, - relatedDocuments, - }; - - return ( -
-
- -
-
- -
- -
-
-
- ); -} - -export const getStaticPaths: GetStaticPaths = () => { - return { - paths: nxRecipesApi.getSlugsStaticDocumentPaths(), - fallback: 'blocking', - }; -}; -export const getStaticProps: GetStaticProps = async ({ - params, -}: { - params: { segments: string[] }; -}) => { - try { - const segments = ['recipes', ...params.segments]; - const document = nxRecipesApi.getDocument(segments); - return { - props: { - document, - relatedDocuments: tagsApi - .getAssociatedItemsFromTags(document.tags) - .filter((item) => item.path !== '/' + segments.join('/')), // Remove currently displayed item - menu: menusApi.getMenu('recipes', ''), - }, - }; - } catch (e) { - return { - notFound: true, - props: { - statusCode: 404, - }, - }; - } -}; diff --git a/nx-dev/nx-dev/pages/recipes/index.tsx b/nx-dev/nx-dev/pages/recipes/index.tsx deleted file mode 100644 index 9e513353dd..0000000000 --- a/nx-dev/nx-dev/pages/recipes/index.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import { getBasicRecipesSection } from '@nx/nx-dev/data-access-menu'; -import { DocViewer } from '@nx/nx-dev/feature-doc-viewer'; -import { ProcessedDocument, RelatedDocument } from '@nx/nx-dev/models-document'; -import { Menu, MenuItem } from '@nx/nx-dev/models-menu'; -import { DocumentationHeader, SidebarContainer } from '@nx/nx-dev/ui-common'; -import { GetStaticProps } from 'next'; -import { useRouter } from 'next/router'; -import { useEffect, useRef } from 'react'; -import { menusApi } from '../../lib/menus.api'; -import { useNavToggle } from '../../lib/navigation-toggle.effect'; -import { nxRecipesApi } from '../../lib/recipes.api'; -import { tagsApi } from '../../lib/tags.api'; - -export default function RecipesRoot({ - document, - menu, - relatedDocuments, -}: { - document: ProcessedDocument; - menu: MenuItem[]; - relatedDocuments: RelatedDocument[]; -}) { - const router = useRouter(); - const { toggleNav, navIsOpen } = useNavToggle(); - const wrapperElement = useRef(null); - - useEffect(() => { - const handleRouteChange = (url: string) => { - if (url.includes('#')) return; - if (!wrapperElement) return; - - (wrapperElement as any).current.scrollTo({ - top: 0, - left: 0, - behavior: 'smooth', - }); - }; - - router.events.on('routeChangeComplete', handleRouteChange); - return () => router.events.off('routeChangeComplete', handleRouteChange); - }, [router, wrapperElement]); - - const vm: { - document: ProcessedDocument; - menu: Menu; - relatedDocuments: RelatedDocument[]; - } = { - document, - menu: { - sections: [getBasicRecipesSection(menu)], - }, - relatedDocuments, - }; - - return ( -
-
- -
-
- -
- -
-
-
- ); -} - -export const getStaticProps: GetStaticProps = async () => { - const document = nxRecipesApi.generateRootDocumentIndex({ - name: 'Recipes', - description: 'Learn quickly how to do things with Nx.', - }); - return { - props: { - document, - menu: menusApi.getMenu('recipes', ''), - relatedDocuments: document.tags - .map((t) => tagsApi.getAssociatedItems(t)) - .flat(), - }, - }; -}; diff --git a/nx-dev/nx-dev/redirect-rules.js b/nx-dev/nx-dev/redirect-rules.js index 536e048dc9..9d9be56596 100644 --- a/nx-dev/nx-dev/redirect-rules.js +++ b/nx-dev/nx-dev/redirect-rules.js @@ -738,9 +738,9 @@ const latestRecipesRefactoring = { '/recipes/adopting-nx-angular/angular-integrated': '/recipes/angular/migration/angular', '/recipes/adopting-nx-angular/angular-manual': - '/recipes/angular/migration/manual', + '/recipes/angular/migration/angular-manual', '/recipes/adopting-nx-angular/angular-multiple': - '/recipes/angular/migration/multiple', + '/recipes/angular/migration/angular-multiple', '/recipes/adopting-nx/migration-angularjs': '/recipes/angular/migration/angularjs', '/recipes/environment-variables/use-environment-variables-in-angular': diff --git a/nx-dev/ui-common/src/lib/documentation-header.tsx b/nx-dev/ui-common/src/lib/documentation-header.tsx index aaf123d2ba..a9f28d228b 100644 --- a/nx-dev/ui-common/src/lib/documentation-header.tsx +++ b/nx-dev/ui-common/src/lib/documentation-header.tsx @@ -41,10 +41,8 @@ export function DocumentationHeader({ const isNxCloud: boolean = router.asPath.startsWith('/nx-cloud'); const isPackages: boolean = router.asPath.startsWith('/packages'); const isPlugins: boolean = router.asPath.startsWith('/extending-nx'); - const isRecipes: boolean = router.asPath.startsWith('/recipes'); const isChangelog: boolean = router.asPath.startsWith('/changelog'); - const isNx: boolean = - !isNxCloud && !isPackages && !isPlugins && !isRecipes && !isChangelog; + const isNx: boolean = !isNxCloud && !isPackages && !isPlugins && !isChangelog; const sections = [ { name: 'Nx', href: '/getting-started/intro', current: isNx }, @@ -63,11 +61,6 @@ export function DocumentationHeader({ href: '/packages', current: isPackages, }, - { - name: 'Recipes', - href: '/recipes', - current: isRecipes, - }, { name: 'Changelog', href: '/changelog', diff --git a/nx-dev/ui-common/src/lib/sidebar.tsx b/nx-dev/ui-common/src/lib/sidebar.tsx index 26ba8bfeef..97919c7e99 100644 --- a/nx-dev/ui-common/src/lib/sidebar.tsx +++ b/nx-dev/ui-common/src/lib/sidebar.tsx @@ -180,8 +180,7 @@ export function SidebarMobile({ const isNxCloud: boolean = router.asPath.startsWith('/nx-cloud'); const isPackages: boolean = router.asPath.startsWith('/packages'); const isPlugins: boolean = router.asPath.startsWith('/extending-nx'); - const isRecipes: boolean = router.asPath.startsWith('/recipes'); - const isNx: boolean = !isNxCloud && !isPackages && !isPlugins && !isRecipes; + const isNx: boolean = !isNxCloud && !isPackages && !isPlugins; const sections = [ { name: 'Home', href: '/', current: false }, @@ -201,11 +200,6 @@ export function SidebarMobile({ href: '/extending-nx/intro/getting-started', current: isPlugins, }, - { - name: 'Recipes', - href: '/recipes', - current: isRecipes, - }, ]; return ( diff --git a/scripts/documentation/generators/generate-manifests.ts b/scripts/documentation/generators/generate-manifests.ts index 9a0d9ee779..aad8a7b304 100644 --- a/scripts/documentation/generators/generate-manifests.ts +++ b/scripts/documentation/generators/generate-manifests.ts @@ -361,12 +361,6 @@ function createDocumentSections( .itemList as Partial[], prefix: '', }, - { - name: 'recipes', - content: documents.find((x) => x.id === 'nx-recipes')! - .itemList as Partial[], - prefix: 'recipes', - }, { name: 'extending-nx', content: documents.find((x) => x.id === 'extending-nx')! diff --git a/tsconfig.base.json b/tsconfig.base.json index 0ef4be573f..27bc4a9441 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -8,136 +8,61 @@ "experimentalDecorators": true, "emitDecoratorMetadata": true, "skipLibCheck": true, - "types": [ - "node", - "jest" - ], - "lib": [ - "es2019" - ], + "types": ["node", "jest"], + "lib": ["es2019"], "declaration": true, "resolveJsonModule": true, "baseUrl": ".", "rootDir": ".", "allowJs": true, "paths": { - "@nrwl/tao": [ - "packages/tao" - ], - "@nrwl/tao/*": [ - "packages/tao/*" - ], - "@nx/angular": [ - "packages/angular" - ], - "@nx/angular/*": [ - "packages/angular/*" - ], - "@nx/cypress": [ - "packages/cypress" - ], - "@nx/cypress/*": [ - "packages/cypress/*" - ], - "@nx/detox": [ - "packages/detox" - ], - "@nx/devkit": [ - "packages/devkit" - ], - "@nx/devkit/*": [ - "packages/devkit/*" - ], - "@nx/docs": [ - "docs" - ], - "@nx/docs/*": [ - "docs/*" - ], - "@nx/e2e/utils": [ - "e2e/utils" - ], - "@nx/esbuild": [ - "packages/esbuild" - ], - "@nx/eslint-plugin": [ - "packages/eslint-plugin/src" - ], - "@nx/expo": [ - "packages/expo" - ], - "@nx/expo/*": [ - "packages/expo/*" - ], - "@nx/express": [ - "packages/express" - ], - "@nx/graph/ui-components": [ - "graph/ui-components/src/index.ts" - ], - "@nx/graph/ui-graph": [ - "graph/ui-graph/src/index.ts" - ], - "@nx/graph/ui-tooltips": [ - "graph/ui-tooltips/src/index.ts" - ], - "@nx/jest": [ - "packages/jest" - ], - "@nx/jest/*": [ - "packages/jest/*" - ], - "@nx/js": [ - "packages/js/src" - ], - "@nx/js/*": [ - "packages/js/*" - ], - "@nx/linter": [ - "packages/linter" - ], - "@nx/linter/*": [ - "packages/linter/*" - ], - "@nx/nest": [ - "packages/nest" - ], - "@nx/next": [ - "packages/next" - ], - "@nx/next/*": [ - "packages/next/*" - ], - "@nx/node": [ - "packages/node" - ], - "@nx/node/*": [ - "packages/node/*" - ], - "@nx/nx-dev/data-access-ai": [ - "nx-dev/data-access-ai/src/index.ts" - ], + "@nrwl/tao": ["packages/tao"], + "@nrwl/tao/*": ["packages/tao/*"], + "@nx/angular": ["packages/angular"], + "@nx/angular/*": ["packages/angular/*"], + "@nx/cypress": ["packages/cypress"], + "@nx/cypress/*": ["packages/cypress/*"], + "@nx/detox": ["packages/detox"], + "@nx/devkit": ["packages/devkit"], + "@nx/devkit/*": ["packages/devkit/*"], + "@nx/docs": ["docs"], + "@nx/docs/*": ["docs/*"], + "@nx/e2e/utils": ["e2e/utils"], + "@nx/esbuild": ["packages/esbuild"], + "@nx/eslint-plugin": ["packages/eslint-plugin/src"], + "@nx/expo": ["packages/expo"], + "@nx/expo/*": ["packages/expo/*"], + "@nx/express": ["packages/express"], + "@nx/graph/ui-components": ["graph/ui-components/src/index.ts"], + "@nx/graph/ui-graph": ["graph/ui-graph/src/index.ts"], + "@nx/graph/ui-tooltips": ["graph/ui-tooltips/src/index.ts"], + "@nx/jest": ["packages/jest"], + "@nx/jest/*": ["packages/jest/*"], + "@nx/js": ["packages/js/src"], + "@nx/js/*": ["packages/js/*"], + "@nx/linter": ["packages/linter"], + "@nx/linter/*": ["packages/linter/*"], + "@nx/nest": ["packages/nest"], + "@nx/next": ["packages/next"], + "@nx/next/*": ["packages/next/*"], + "@nx/node": ["packages/node"], + "@nx/node/*": ["packages/node/*"], + "@nx/nx-dev/data-access-ai": ["nx-dev/data-access-ai/src/index.ts"], "@nx/nx-dev/data-access-documents": [ "nx-dev/data-access-documents/src/index.ts" ], "@nx/nx-dev/data-access-documents/node-only": [ "nx-dev/data-access-documents/src/node.index.ts" ], - "@nx/nx-dev/data-access-menu": [ - "nx-dev/data-access-menu/src/index.ts" - ], + "@nx/nx-dev/data-access-menu": ["nx-dev/data-access-menu/src/index.ts"], "@nx/nx-dev/data-access-packages": [ "nx-dev/data-access-packages/src/index.ts" ], "@nx/nx-dev/data-access-packages/node-only": [ "nx-dev/data-access-packages/src/node.index.ts" ], - "@nx/nx-dev/feature-ai": [ - "nx-dev/feature-ai/src/index.ts" - ], - "@nx/nx-dev/feature-analytics": [ - "nx-dev/feature-analytics/src/index.ts" - ], + "@nx/nx-dev/feature-ai": ["nx-dev/feature-ai/src/index.ts"], + "@nx/nx-dev/feature-analytics": ["nx-dev/feature-analytics/src/index.ts"], "@nx/nx-dev/feature-doc-viewer": [ "nx-dev/feature-doc-viewer/src/index.ts" ], @@ -147,126 +72,46 @@ "@nx/nx-dev/feature-package-schema-viewer/*": [ "nx-dev/feature-package-schema-viewer/*" ], - "@nx/nx-dev/feature-search": [ - "nx-dev/feature-search/src/index.ts" - ], - "@nx/nx-dev/models-document": [ - "nx-dev/models-document/src/index.ts" - ], - "@nx/nx-dev/models-menu": [ - "nx-dev/models-menu/src/index.ts" - ], - "@nx/nx-dev/models-package": [ - "nx-dev/models-package/src/index.ts" - ], - "@nx/nx-dev/ui-commands": [ - "nx-dev/ui-commands/src/index.ts" - ], - "@nx/nx-dev/ui-common": [ - "nx-dev/ui-common/src/index.ts" - ], - "@nx/nx-dev/ui-community": [ - "nx-dev/ui-community/src/index.ts" - ], - "@nx/nx-dev/ui-conference": [ - "nx-dev/ui-conference/src/index.ts" - ], - "@nx/nx-dev/ui-home": [ - "nx-dev/ui-home/src/index.ts" - ], - "@nx/nx-dev/ui-markdoc": [ - "nx-dev/ui-markdoc/src/index.ts" - ], - "@nx/nx-dev/ui-member-card": [ - "nx-dev/ui-member-card/src/index.ts" - ], - "@nx/nx-dev/ui-primitives": [ - "nx-dev/ui-primitives/src/index.ts" - ], - "@nx/nx-dev/ui-references": [ - "nx-dev/ui-references/src/index.ts" - ], - "@nx/nx-dev/ui-sponsor-card": [ - "nx-dev/ui-sponsor-card/src/index.ts" - ], - "@nx/nx-dev/ui-theme": [ - "nx-dev/ui-theme/src/index.ts" - ], - "@nx/playwright": [ - "packages/playwright/index.ts" - ], - "@nx/plugin": [ - "packages/plugin" - ], - "@nx/plugin/*": [ - "packages/plugin/*" - ], - "@nx/react": [ - "packages/react" - ], - "@nx/react-native": [ - "packages/react-native" - ], - "@nx/react-native/*": [ - "packages/react-native/*" - ], - "@nx/react/*": [ - "packages/react/*" - ], - "@nx/rollup": [ - "packages/rollup" - ], - "@nx/rollup/*": [ - "packages/rollup/*" - ], - "@nx/storybook": [ - "packages/storybook" - ], - "@nx/storybook/*": [ - "packages/storybook/*" - ], - "@nx/typedoc-theme": [ - "typedoc-theme/src/index.ts" - ], - "@nx/vite": [ - "packages/vite" - ], - "@nx/vite/*": [ - "packages/vite/*" - ], - "@nx/web": [ - "packages/web" - ], - "@nx/web/*": [ - "packages/web/*" - ], - "@nx/webpack": [ - "packages/webpack" - ], - "@nx/webpack/*": [ - "packages/webpack/*" - ], - "@nx/workspace": [ - "packages/workspace" - ], - "@nx/workspace/*": [ - "packages/workspace/*" - ], - "@nx/workspace/testing": [ - "packages/workspace/testing" - ], - "create-nx-workspace": [ - "packages/create-nx-workspace/index.ts" - ], - "create-nx-workspace/*": [ - "packages/create-nx-workspace/*" - ], - "nx": [ - "packages/nx" - ], - "nx/*": [ - "packages/nx/*" - ] + "@nx/nx-dev/feature-search": ["nx-dev/feature-search/src/index.ts"], + "@nx/nx-dev/models-document": ["nx-dev/models-document/src/index.ts"], + "@nx/nx-dev/models-menu": ["nx-dev/models-menu/src/index.ts"], + "@nx/nx-dev/models-package": ["nx-dev/models-package/src/index.ts"], + "@nx/nx-dev/ui-commands": ["nx-dev/ui-commands/src/index.ts"], + "@nx/nx-dev/ui-common": ["nx-dev/ui-common/src/index.ts"], + "@nx/nx-dev/ui-community": ["nx-dev/ui-community/src/index.ts"], + "@nx/nx-dev/ui-conference": ["nx-dev/ui-conference/src/index.ts"], + "@nx/nx-dev/ui-home": ["nx-dev/ui-home/src/index.ts"], + "@nx/nx-dev/ui-markdoc": ["nx-dev/ui-markdoc/src/index.ts"], + "@nx/nx-dev/ui-member-card": ["nx-dev/ui-member-card/src/index.ts"], + "@nx/nx-dev/ui-primitives": ["nx-dev/ui-primitives/src/index.ts"], + "@nx/nx-dev/ui-references": ["nx-dev/ui-references/src/index.ts"], + "@nx/nx-dev/ui-sponsor-card": ["nx-dev/ui-sponsor-card/src/index.ts"], + "@nx/nx-dev/ui-theme": ["nx-dev/ui-theme/src/index.ts"], + "@nx/playwright": ["packages/playwright/index.ts"], + "@nx/plugin": ["packages/plugin"], + "@nx/plugin/*": ["packages/plugin/*"], + "@nx/react": ["packages/react"], + "@nx/react-native": ["packages/react-native"], + "@nx/react-native/*": ["packages/react-native/*"], + "@nx/react/*": ["packages/react/*"], + "@nx/rollup": ["packages/rollup"], + "@nx/rollup/*": ["packages/rollup/*"], + "@nx/storybook": ["packages/storybook"], + "@nx/storybook/*": ["packages/storybook/*"], + "@nx/typedoc-theme": ["typedoc-theme/src/index.ts"], + "@nx/vite": ["packages/vite"], + "@nx/vite/*": ["packages/vite/*"], + "@nx/web": ["packages/web"], + "@nx/web/*": ["packages/web/*"], + "@nx/webpack": ["packages/webpack"], + "@nx/webpack/*": ["packages/webpack/*"], + "@nx/workspace": ["packages/workspace"], + "@nx/workspace/*": ["packages/workspace/*"], + "@nx/workspace/testing": ["packages/workspace/testing"], + "create-nx-workspace": ["packages/create-nx-workspace/index.ts"], + "create-nx-workspace/*": ["packages/create-nx-workspace/*"], + "nx": ["packages/nx"], + "nx/*": ["packages/nx/*"] } } }