nx/docs/map.json

2777 lines
103 KiB
JSON

{
"$schema": "./../scripts/documentation/map-schema.json",
"title": "Documentation map reference",
"description": "This is used to create documentation routing and hierarchy on the nx.dev website.",
"content": [
{
"name": "Nx",
"id": "nx-documentation",
"description": "Nx documentation for you to discover!",
"itemList": [
{
"name": "Getting Started",
"id": "getting-started",
"description": "Get started with basic information, concepts and tutorials.",
"itemList": [
{
"name": "Intro to Nx",
"id": "intro",
"file": "shared/getting-started/intro"
},
{
"name": "Installation",
"id": "installation",
"file": "shared/getting-started/installation"
},
{
"name": "Why Nx?",
"id": "why-nx",
"file": "shared/getting-started/why-nx"
},
{
"name": "Editor Setup",
"description": "Learn about Nx Console, an extension for VS Code and WebStorm.",
"id": "editor-setup",
"tags": ["editor-setup"],
"file": "shared/getting-started/editor-setup"
},
{
"name": "Tutorials",
"id": "tutorials",
"description": "Get started with basic information, concepts and tutorials.",
"itemList": [
{
"name": "TypeScript Packages",
"id": "typescript-packages-tutorial",
"file": "shared/tutorials/typescript-packages"
},
{
"name": "React Standalone",
"id": "react-standalone-tutorial",
"file": "shared/tutorials/react-standalone"
},
{
"name": "React Monorepo",
"id": "react-monorepo-tutorial",
"file": "shared/tutorials/react-monorepo"
},
{
"name": "Angular Standalone",
"id": "angular-standalone-tutorial",
"file": "shared/tutorials/angular-standalone"
},
{
"name": "Angular Monorepo",
"id": "angular-monorepo-tutorial",
"file": "shared/tutorials/angular-monorepo"
},
{
"name": "Vue Standalone",
"id": "vue-standalone-tutorial",
"file": "shared/tutorials/vue-standalone"
},
{
"name": "Gradle Monorepo",
"id": "gradle-tutorial",
"file": "shared/tutorials/gradle"
}
]
}
]
},
{
"name": "Features",
"id": "features",
"description": "Learn the core features of Nx with in depth guides.",
"itemList": [
{
"name": "Run Tasks",
"description": "Learn about the various ways you can use Nx to run tasks in your workspace.",
"tags": ["run-tasks", "cache-task-results"],
"id": "run-tasks",
"file": "shared/features/run-tasks"
},
{
"name": "Cache Task Results",
"description": "Learn how to define cacheable tasks, how to fine-tune with inputs and outputs, where the cache is stored and much more.",
"id": "cache-task-results",
"tags": ["cache-task-results"],
"file": "shared/features/cache-task-results"
},
{
"name": "Enhance Your LLM",
"id": "enhance-AI",
"tags": ["AI"],
"file": "shared/features/enhance-AI"
},
{
"name": "Explore Your Workspace",
"id": "explore-graph",
"tags": ["explore-graph"],
"file": "shared/features/explore-graph"
},
{
"name": "Generate Code",
"id": "generate-code",
"tags": ["generate-code"],
"file": "shared/features/generate-code"
},
{
"name": "Automate Updating Dependencies",
"description": "Learn how Nx provides automated update scripts to help you keep your workspace, tooling and framework dependencies up to date.",
"id": "automate-updating-dependencies",
"tags": ["automate-updating-dependencies"],
"file": "shared/features/automate-updating-dependencies"
},
{
"name": "Enforce Module Boundaries",
"description": "Learn how to avoid dependency hell and scale a codebase by imposing constraints on your projects using the module boundary lint rule.",
"id": "enforce-module-boundaries",
"tags": ["enforce-module-boundaries"],
"file": "shared/features/enforce-module-boundaries"
},
{
"name": "Manage Releases",
"description": "Learn how Nx provides tools to help you manage releasing your projects.",
"id": "manage-releases",
"tags": ["nx-release"],
"file": "shared/features/manage-releases"
},
{
"name": "CI Features",
"id": "ci-features",
"description": "Features of Nx and Nx Cloud that improve CI",
"itemList": [
{
"name": "Run Only Tasks Affected by a PR",
"id": "affected",
"file": "",
"path": "/ci/features/affected",
"isExternal": true
},
{
"name": "Use Remote Caching (Nx Replay)",
"description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.",
"id": "remote-cache",
"file": "",
"path": "/ci/features/remote-cache",
"isExternal": true
},
{
"name": "Distribute Task Execution (Nx Agents)",
"description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.",
"id": "distribute-task-execution",
"file": "",
"path": "/ci/features/distribute-task-execution",
"isExternal": true
},
{
"name": "Dynamically Allocate Agents",
"id": "dynamic-agents",
"file": "",
"path": "/ci/features/dynamic-agents",
"isExternal": true
},
{
"name": "Automatically Split E2E Tasks",
"id": "split-e2e-tasks",
"file": "",
"path": "/ci/features/split-e2e-tasks",
"isExternal": true
},
{
"name": "Identify and Re-run Flaky Tasks",
"id": "flaky-tasks",
"file": "",
"path": "/ci/features/flaky-tasks",
"isExternal": true
}
]
}
]
},
{
"name": "Concepts",
"id": "concepts",
"description": "Learn about all the different concepts Nx uses to manage your tasks and enhance your productivity.",
"itemList": [
{
"name": "Mental Model",
"tags": ["intro", "inferred-tasks"],
"id": "mental-model",
"file": "shared/concepts/mental-model"
},
{
"name": "How Caching Works",
"tags": ["cache-task-results"],
"id": "how-caching-works",
"file": "shared/concepts/how-caching-works"
},
{
"name": "What is a Task Pipeline",
"tags": ["run-tasks"],
"id": "task-pipeline-configuration",
"file": "shared/concepts/task-pipeline-configuration"
},
{
"name": "What Are Nx Plugins",
"tags": [
"add",
"generate-code",
"create-your-own-plugin",
"inferred-tasks"
],
"id": "nx-plugins",
"file": "shared/concepts/nx-plugins"
},
{
"name": "Inferred Tasks",
"tags": ["inferred-tasks"],
"id": "inferred-tasks",
"file": "shared/concepts/inferred-tasks"
},
{
"name": "Types of Configuration",
"tags": [],
"id": "types-of-configuration",
"file": "shared/concepts/types-of-configuration"
},
{
"name": "Executors and Configurations",
"id": "executors-and-configurations",
"tags": ["run-tasks"],
"file": "shared/concepts/executors-and-configurations"
},
{
"name": "Common Tasks",
"id": "common-tasks",
"tags": ["run-tasks"],
"file": "shared/concepts/common-tasks"
},
{
"name": "Nx Daemon",
"id": "nx-daemon",
"tags": ["daemon"],
"file": "shared/concepts/daemon"
},
{
"name": "Sync Generators",
"id": "sync-generators",
"tags": ["sync"],
"file": "shared/concepts/sync-generators"
},
{
"name": "TypeScript Project Linking",
"id": "typescript-project-linking",
"tags": ["project-linking"],
"file": "shared/concepts/typescript-project-linking"
},
{
"name": "Buildable and Publishable Libraries",
"id": "buildable-and-publishable-libraries",
"file": "shared/concepts/buildable-and-publishable-libraries"
},
{
"name": "Module Federation",
"id": "module-federation",
"description": "Understand more about Module Federation with NX",
"itemList": [
{
"name": "Module Federation and Nx",
"id": "module-federation-and-nx",
"tags": ["module-federation", "angular", "react"],
"file": "shared/concepts/module-federation/module-federation-and-nx"
},
{
"name": "Nx Module Federation Technical Overview",
"id": "nx-module-federation-technical-overview",
"tags": ["module-federation", "angular", "react"],
"file": "shared/concepts/module-federation/nx-module-federation-technical-overview"
},
{
"name": "Faster Builds with Module Federation",
"id": "faster-builds-with-module-federation",
"tags": ["module-federation", "angular", "react"],
"file": "shared/concepts/module-federation/faster-builds"
},
{
"name": "Micro Frontend Architecture",
"id": "micro-frontend-architecture",
"file": "shared/concepts/module-federation/micro-frontend-architecture"
},
{
"name": "Manage Library Versions with Module Federation",
"id": "manage-library-versions-with-module-federation",
"file": "shared/concepts/module-federation/manage-library-versions-with-module-federation"
}
]
},
{
"name": "Organizational Decisions",
"id": "decisions",
"description": "Topics that need to be considered when structuring your repository",
"itemList": [
{
"name": "Overview",
"id": "overview",
"file": "shared/concepts/decisions/monorepo-polyrepo"
},
{
"name": "Monorepos",
"id": "why-monorepos",
"file": "shared/concepts/decisions/monorepos"
},
{
"name": "Dependency Management",
"id": "dependency-management",
"file": "shared/concepts/decisions/dependency-management"
},
{
"name": "Code Ownership",
"id": "code-ownership",
"file": "shared/concepts/decisions/code-ownership"
},
{
"name": "Project Size",
"id": "project-size",
"tags": ["enforce-module-boundaries"],
"file": "shared/concepts/decisions/project-size"
},
{
"name": "Project Dependency Rules",
"id": "project-dependency-rules",
"tags": ["enforce-module-boundaries"],
"file": "shared/concepts/decisions/project-dependency-rules"
},
{
"name": "Folder Structure",
"id": "folder-structure",
"tags": ["enforce-module-boundaries"],
"file": "shared/concepts/decisions/folder-structure"
}
]
}
]
},
{
"name": "Recipes",
"id": "recipes",
"description": "In depth recipes for common tasks",
"itemList": [
{
"name": "Installation",
"id": "installation",
"description": "Installing Nx",
"itemList": [
{
"name": "Install Nx in a Non-Javascript Repo",
"id": "install-non-javascript",
"tags": ["installation"],
"file": "shared/recipes/installation/install-non-javascript"
},
{
"name": "Update Your Global Nx Installation",
"id": "update-global-installation",
"tags": ["installation"],
"file": "shared/recipes/installation/update-global-installation"
}
]
},
{
"name": "Tasks & Caching",
"id": "running-tasks",
"description": "A series of recipes that show how to run tasks efficiently with Nx",
"itemList": [
{
"name": "Configure Inputs for Task Caching",
"id": "configure-inputs",
"tags": ["run-tasks", "cache-task-results"],
"file": "shared/recipes/running-tasks/configure-inputs"
},
{
"name": "Configure Outputs for Task Caching",
"id": "configure-outputs",
"tags": ["run-tasks", "cache-task-results"],
"file": "shared/recipes/running-tasks/configure-outputs"
},
{
"name": "Define a Task Pipeline",
"id": "defining-task-pipeline",
"tags": ["run-tasks"],
"file": "shared/recipes/running-tasks/defining-task-pipeline"
},
{
"name": "Run Custom Commands",
"id": "run-commands-executor",
"tags": ["run-tasks"],
"file": "shared/recipes/running-tasks/running-custom-commands"
},
{
"name": "Pass Args to Commands",
"id": "pass-args-to-commands",
"tags": ["run-tasks"],
"file": "shared/recipes/running-tasks/pass-args-to-commands"
},
{
"name": "Run Tasks in Parallel",
"id": "run-tasks-in-parallel",
"tags": ["run-tasks"],
"file": "shared/recipes/running-tasks/run-tasks-in-parallel"
},
{
"name": "Run Root-Level NPM Scripts with Nx",
"id": "root-level-scripts",
"tags": ["run-tasks", "exec"],
"file": "shared/recipes/running-tasks/root-level-scripts"
},
{
"name": "Workspace Watching",
"id": "workspace-watching",
"tags": ["run-tasks", "workspace-watching"],
"file": "shared/recipes/running-tasks/workspace-watching"
},
{
"name": "Reduce Repetitive Configuration",
"id": "reduce-repetitive-configuration",
"tags": [],
"file": "shared/recipes/running-tasks/reduce-repetitive-configuration"
},
{
"name": "Change Cache Location",
"id": "change-cache-location",
"file": "shared/recipes/running-tasks/change-cache-location"
},
{
"name": "Skip Task Caching",
"id": "skipping-cache",
"file": "shared/recipes/running-tasks/skipping-cache"
},
{
"name": "Migrate to Inferred Tasks (Project Crystal)",
"id": "convert-to-inferred",
"tags": ["inferred-tasks", "automate-updating-dependencies"],
"file": "shared/recipes/running-tasks/convert-to-inferred"
}
]
},
{
"name": "Adopting Nx",
"id": "adopting-nx",
"description": "Adopting Nx incrementally, on existing project or from scratch.",
"itemList": [
{
"name": "NPM/Yarn/PNPM workspaces",
"id": "adding-to-monorepo",
"tags": ["init"],
"file": "shared/migration/adding-to-monorepo"
},
{
"name": "Migrate From Turborepo",
"id": "from-turborepo",
"file": "shared/migration/from-turborepo"
},
{
"name": "Add to any Project",
"id": "adding-to-existing-project",
"tags": ["init"],
"file": "shared/migration/adding-to-existing-project"
},
{
"name": "Import an Existing Project into an Nx Workspace",
"id": "import-project",
"tags": ["import"],
"file": "shared/migration/import-project"
},
{
"name": "Preserving Git Histories",
"id": "preserving-git-histories",
"file": "shared/migration/preserving-git-histories"
},
{
"name": "Manual migration",
"id": "manual",
"file": "shared/migration/manual"
}
]
},
{
"name": "Nx Release",
"id": "nx-release",
"description": "Recipes for releasing with Nx release.",
"itemList": [
{
"name": "Get Started with Nx Release",
"id": "get-started-with-nx-release",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/get-started-with-nx-release"
},
{
"name": "Release Projects Independently",
"id": "release-projects-independently",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/release-projects-independently"
},
{
"name": "Updating Version References in Manifest Files (e.g. package.json)",
"id": "updating-version-references",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/updating-version-references"
},
{
"name": "Automatically Version with Conventional Commits",
"id": "automatically-version-with-conventional-commits",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/automatically-version-with-conventional-commits"
},
{
"name": "Customize Conventional Commit Types",
"id": "customize-conventional-commit-types",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/customize-conventional-commit-types"
},
{
"name": "File Based Versioning (Version Plans)",
"id": "file-based-versioning-version-plans",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/file-based-versioning-version-plans"
},
{
"name": "Configure Custom Registries",
"id": "configure-custom-registries",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/configure-custom-registries"
},
{
"name": "Publish in CI/CD",
"id": "publish-in-ci-cd",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/publish-in-ci-cd"
},
{
"name": "Automate GitHub Releases",
"id": "automate-github-releases",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/automate-github-releases"
},
{
"name": "Publish Rust Crates",
"id": "publish-rust-crates",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/publish-rust-crates"
},
{
"name": "Update Your Local Registry Setup to use Nx Release",
"id": "update-local-registry-setup",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/update-local-registry-setup"
},
{
"name": "Configure Changelog Format",
"id": "configure-changelog-format",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/configure-changelog-format"
},
{
"name": "Build Before Versioning",
"id": "build-before-versioning",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/build-before-versioning"
},
{
"name": "Configuring Version Prefix for Dependency Versions",
"id": "configuration-version-prefix",
"tags": ["nx-release"],
"file": "shared/recipes/nx-release/configuration-version-prefix"
}
]
},
{
"name": "Module Federation",
"id": "module-federation",
"description": "Advanced guides to utilize Module Federation with Nx.",
"itemList": [
{
"id": "create-a-host",
"name": "How to create a Module Federation Host Application",
"description": "A guide on how to create a Module Federation Host Application in your Nx workspace",
"file": "shared/recipes/module-federation/creating-a-host"
},
{
"id": "create-a-remote",
"name": "How to create a Module Federation Remote Application",
"description": "A guide on how to create a Module Federation Remote Application in your Nx workspace",
"file": "shared/recipes/module-federation/creating-a-remote"
},
{
"id": "federate-a-module",
"name": "How to Federate a Module",
"description": "A guide on how to federate a module in your Nx workspace",
"file": "shared/recipes/module-federation/federate-a-module"
}
]
},
{
"name": "Nx Console",
"id": "nx-console",
"description": "Checkout all the recipes related to Nx Console.",
"itemList": [
{
"name": "Telemetry",
"id": "console-telemetry",
"tags": ["editor-setup"],
"file": "shared/recipes/console-telemetry"
},
{
"name": "Project Details View",
"id": "console-project-details",
"tags": ["editor-setup"],
"file": "shared/recipes/console-project-details"
},
{
"name": "Generate Command",
"id": "console-generate-command",
"tags": ["editor-setup"],
"file": "shared/recipes/console-generate-command"
},
{
"name": "Run Command",
"id": "console-run-command",
"tags": ["editor-setup"],
"file": "shared/recipes/console-run-command"
},
{
"name": "Nx Cloud Integration",
"id": "console-nx-cloud",
"tags": ["editor-setup"],
"file": "shared/recipes/console-nx-cloud"
},
{
"name": "Troubleshooting",
"id": "console-troubleshooting",
"tags": ["editor-setup"],
"file": "shared/recipes/console-troubleshooting"
}
]
},
{
"name": "React",
"id": "react",
"description": "Advanced guides to adopt Nx in React.",
"itemList": [
{
"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": ["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": "React Compiler with Nx",
"id": "react-compiler",
"file": "shared/guides/react-compiler"
}
]
},
{
"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",
"tags": ["init"],
"file": "shared/migration/migration-angular"
},
{
"name": "Migrating From Multiple Angular CLI Repos",
"id": "angular-multiple",
"file": "shared/migration/angular-multiple"
}
]
},
{
"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": ["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": ["module-federation", "angular"],
"file": "shared/recipes/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": "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 (deprecated)",
"id": "node-aws-lambda",
"tags": ["deployment", "node"],
"file": "shared/recipes/deployment/node-aws-lambda"
},
{
"name": "Set Up Application Proxies",
"id": "application-proxies",
"tags": ["node"],
"file": "shared/recipes/node/application-proxies"
},
{
"name": "Wait for Tasks to Finish",
"id": "wait-for-tasks",
"tags": [],
"file": "shared/recipes/node/wait-for-tasks"
}
]
},
{
"name": "Storybook",
"id": "storybook",
"description": "Storybook strategies and setups.",
"itemList": [
{
"name": "Set up Storybook for React Projects",
"id": "overview-react",
"tags": ["storybook"],
"description": "This guide explains how to set up Storybook for React projects in your Nx workspace.",
"file": "shared/recipes/storybook/plugin-react"
},
{
"name": "Set up Storybook for Angular Projects",
"id": "overview-angular",
"tags": ["storybook"],
"description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.",
"file": "shared/recipes/storybook/plugin-angular"
},
{
"name": "Set up Storybook for Vue Projects",
"id": "overview-vue",
"tags": ["storybook"],
"description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.",
"file": "shared/recipes/storybook/plugin-vue"
},
{
"name": "Configuring Storybook on Nx",
"id": "configuring-storybook",
"tags": ["storybook"],
"description": "This guide explains how Storybook is configured on your Nx workspace.",
"file": "shared/recipes/storybook/configuring-storybook"
},
{
"name": "One main Storybook instance for all projects",
"id": "one-storybook-for-all",
"tags": ["storybook"],
"description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.",
"file": "shared/recipes/storybook/one-storybook-for-all"
},
{
"name": "One Storybook instance per scope",
"id": "one-storybook-per-scope",
"tags": ["storybook"],
"description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.",
"file": "shared/recipes/storybook/one-storybook-per-scope"
},
{
"name": "One main Storybook instance using Storybook Composition",
"id": "one-storybook-with-composition",
"tags": ["storybook"],
"description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.",
"file": "shared/recipes/storybook/one-storybook-with-composition"
},
{
"name": "How to configure Webpack and Vite for Storybook",
"id": "custom-builder-configs",
"tags": ["storybook"],
"description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.",
"file": "shared/recipes/storybook/custom-builder-configs"
},
{
"name": "Setting up Storybook Interaction Tests with Nx",
"id": "storybook-interaction-tests",
"tags": ["storybook"],
"description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.",
"file": "shared/recipes/storybook/interaction-tests"
},
{
"name": "Upgrading Storybook using the Storybook CLI",
"id": "upgrading-storybook",
"tags": ["storybook"],
"description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.",
"file": "shared/recipes/storybook/upgrading-storybook"
},
{
"name": "Setting up Storybook Composition with Nx",
"id": "storybook-composition-setup",
"tags": ["storybook"],
"description": "This guide explains how you can set up Storybook composition on your Nx workspace.",
"file": "shared/recipes/storybook/storybook-composition-setup"
},
{
"name": "Angular: Set up Compodoc for Storybook on Nx",
"id": "angular-storybook-compodoc",
"tags": ["storybook"],
"description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.",
"file": "shared/recipes/storybook/angular-storybook-compodoc"
},
{
"name": "Angular: Configuring styles and preprocessor options",
"id": "angular-configuring-styles",
"tags": ["storybook"],
"description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.",
"file": "shared/recipes/storybook/angular-configuring-styles"
}
]
},
{
"name": "Cypress",
"id": "cypress",
"description": "Cypress related recipes",
"itemList": [
{
"id": "cypress-component-testing",
"name": "Component Testing",
"description": "Component Testing",
"file": "shared/packages/cypress/cypress-component-testing"
},
{
"id": "cypress-setup-node-events",
"name": "Using setupNodeEvents with Cypress preset",
"description": "A guide on using the setupNodeEvents function with @nx/cypress/plugins/cypress-preset",
"file": "shared/packages/cypress/cypress-setup-node-events"
},
{
"id": "cypress-v11-migration",
"name": "Cypress v11 Migration Guide",
"description": "Cypress v11 Migration Guide",
"file": "shared/packages/cypress/cypress-v11-migration"
}
]
},
{
"name": "Next",
"id": "next",
"description": "Next related recipes",
"itemList": [
{
"id": "next-config-setup",
"name": "How to configure Next.js plugins",
"description": "How to configure Next.js plugins",
"file": "shared/packages/next/next-config-setup"
}
]
},
{
"name": "Nuxt",
"id": "nuxt",
"description": "Nuxt related recipes",
"itemList": [
{
"id": "deploy-nuxt-to-vercel",
"name": "Deploying Nuxt applications to Vercel",
"description": "A detailed guide on how to deploy Nuxt applications from Nx workspaces to Vercel.",
"file": "shared/recipes/deployment/deploy-nuxt-to-vercel"
}
]
},
{
"name": "Vite",
"id": "vite",
"description": "Vite related recipes",
"itemList": [
{
"id": "configure-vite",
"name": "Configure Vite on your Nx workspace",
"description": "Configure Vite on your Nx workspace",
"file": "shared/packages/vite/configure-vite"
}
]
},
{
"name": "Webpack",
"id": "webpack",
"description": "Webpack related recipes",
"itemList": [
{
"id": "webpack-config-setup",
"name": "How to configure Webpack in your Nx workspace",
"description": "A guide on how to configure webpack on your Nx workspace, and instructions on how to customize your webpack configuration",
"file": "shared/packages/webpack/webpack-config-setup"
},
{
"id": "webpack-plugins",
"name": "Webpack plugins",
"description": "Webpack plugins",
"file": "shared/packages/webpack/webpack-plugins"
}
]
},
{
"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-module-boundaries"],
"file": "shared/recipes/ban-dependencies-with-tags"
},
{
"name": "Tag in Multiple Dimensions",
"id": "tag-multiple-dimensions",
"tags": ["enforce-module-boundaries"],
"file": "shared/recipes/tag-multiple-dimensions"
},
{
"name": "Ban External Imports",
"id": "ban-external-imports",
"tags": ["enforce-module-boundaries"],
"file": "shared/recipes/ban-external-imports"
},
{
"name": "Tags Allow List",
"id": "tags-allow-list",
"tags": ["enforce-module-boundaries"],
"file": "shared/recipes/tags-allow-list"
}
]
},
{
"name": "Tips and tricks",
"id": "tips-n-tricks",
"description": "Various tips and tricks for using Nx.",
"itemList": [
{
"name": "Convert from a Standalone Repository to a Monorepo",
"id": "standalone-to-monorepo",
"file": "shared/recipes/tips-n-tricks/standalone-to-monorepo"
},
{
"name": "Configuring ESLint with Typescript",
"id": "eslint",
"file": "shared/eslint"
},
{
"name": "Switch to Workspaces and TS Project References",
"id": "switch-to-workspaces-project-references",
"tags": ["project-linking"],
"file": "shared/recipes/tips-n-tricks/switch-to-workspaces-project-references"
},
{
"name": "Enable Typescript Batch Mode",
"id": "enable-tsc-batch-mode",
"file": "shared/recipes/enable-tsc-batch-mode"
},
{
"name": "Define Secondary Entrypoints for Typescript Packages",
"id": "define-secondary-entrypoints",
"file": "shared/recipes/tips-n-tricks/define-secondary-entrypoints"
},
{
"name": "Compile Typescript Packages to Multiple Formats",
"id": "compile-multiple-formats",
"file": "shared/recipes/tips-n-tricks/compile-multiple-formats"
},
{
"name": "Keep Nx Versions in Sync",
"id": "keep-nx-versions-in-sync",
"tags": ["automate-updating-dependencies", "add"],
"file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync"
},
{
"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": "Disable Graph Links Created from Analyzing Source Files",
"id": "analyze-source-files",
"tags": ["explore-graph"],
"file": "shared/recipes/analyze-source-files"
},
{
"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": "Using Yarn PnP",
"id": "yarn-pnp",
"tags": ["yarn", "Plug and Play"],
"file": "shared/recipes/yarn-pnp"
},
{
"name": "Switching to ESLint's flat config format",
"id": "flat-config",
"tags": ["eslint", "flat config"],
"file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint"
}
]
}
]
},
{
"name": "Enterprise",
"id": "nx-enterprise",
"description": "Enterprise solutions for the Nx CLI",
"itemList": [
{
"name": "Activate Powerpack",
"id": "activate-powerpack",
"tags": ["installation"],
"file": "shared/recipes/installation/activate-powerpack"
},
{
"name": "Powerpack Features",
"id": "powerpack",
"description": "Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.",
"file": "shared/features/powerpack/index",
"itemList": [
{
"name": "Free Licenses & Trials",
"id": "free-licenses-and-trials",
"file": "shared/features/powerpack/free-licenses-and-trials"
},
{
"name": "Run Language-Agnostic Conformance Rules",
"description": "Write and apply rules for your Nx workspace",
"id": "conformance",
"tags": ["conformance"],
"file": "shared/features/powerpack/conformance"
},
{
"name": "Define Code Ownership at the Project Level",
"description": "Configure and maintain code owners for projects in an Nx workspace",
"id": "owners",
"tags": ["owners"],
"file": "shared/features/powerpack/owners"
},
{
"name": "Self-Host the Remote Cache",
"description": "Host the remote cache without using Nx Cloud",
"id": "custom-caching",
"tags": ["custom-caching"],
"file": "shared/features/powerpack/custom-caching"
}
]
}
]
},
{
"name": "Showcase",
"id": "showcase",
"description": "Discover our selection of examples and benchmarks.",
"itemList": [
{
"name": "Nx with your favorite tech",
"id": "example-repos",
"description": "Examples of different ways to use Nx with your favorite tech",
"file": "shared/showcase/example-repos",
"itemList": [
{
"name": "Express",
"id": "add-express",
"description": "Add an Express application to your repo",
"file": "shared/recipes/add-stack/add-express"
},
{
"name": "Lit",
"id": "add-lit",
"description": "Lit to your repo",
"file": "shared/recipes/add-stack/add-lit"
},
{
"name": "Solid",
"id": "add-solid",
"description": "Solid to your repo",
"file": "shared/recipes/add-stack/add-solid"
},
{
"name": "Qwik",
"id": "add-qwik",
"description": "Qwik to your repo",
"file": "shared/recipes/add-stack/add-qwik"
},
{
"name": "Rust",
"id": "add-rust",
"description": "Rust to your repo",
"file": "shared/recipes/add-stack/add-rust"
},
{
"name": ".NET",
"id": "add-dotnet",
"description": ".NET to your repo",
"file": "shared/recipes/add-stack/add-dotnet"
},
{
"name": "Astro",
"id": "add-astro",
"description": "Add Nx to an Astro project",
"file": "shared/recipes/add-stack/add-astro"
},
{
"name": "Svelte",
"id": "add-svelte",
"description": "Svelte to your repo",
"file": "shared/recipes/add-stack/add-svelte"
},
{
"name": "Fastify",
"id": "add-fastify",
"description": "Fastify to your repo",
"file": "shared/recipes/add-stack/add-fastify"
},
{
"name": "Apollo GraphQL",
"id": "apollo-react",
"file": "shared/examples/apollo-react"
},
{
"name": "Prisma with NestJS",
"id": "nestjs-prisma",
"tags": ["database", "node"],
"file": "shared/recipes/database/nestjs-prisma"
},
{
"name": "Mongo with Fastify",
"id": "mongo-fastify",
"tags": ["database", "node"],
"file": "shared/recipes/database/mongo-fastify"
},
{
"name": "Redis with Fastify",
"id": "redis-fastify",
"tags": ["database", "node"],
"file": "shared/recipes/database/redis-fastify"
},
{
"name": "Postgres with Fastify",
"id": "postgres-fastify",
"tags": ["database", "node"],
"file": "shared/recipes/database/postgres-fastify"
},
{
"name": "PlanetScale with Serverless Fastify",
"id": "serverless-fastify-planetscale",
"tags": ["database", "node", "serverless"],
"file": "shared/recipes/database/serverless-fastify-planetscale"
},
{
"name": "Nx with Micro-frontends",
"id": "mfe",
"file": "shared/examples/nx-examples"
}
]
},
{
"name": "Benchmarks",
"id": "benchmarks",
"description": "Benchmarks showing how fast Nx is",
"itemList": [
{
"name": "Typescript Batch Mode Compilation",
"id": "tsc-batch-mode",
"file": "shared/examples/tsc-batch-mode"
},
{
"name": "Large Repo and Caching",
"id": "caching",
"file": "shared/examples/caching"
},
{
"name": "Large Repo and DTE",
"id": "dte",
"file": "shared/examples/dte"
}
]
}
]
},
{
"name": "Reference",
"id": "reference",
"description": "Understand how to use Nx functionalities, what arguments and options are available for each component.",
"itemList": [
{
"name": "Commands",
"id": "nx-commands",
"file": "shared/reference/commands"
},
{
"name": "Nx Configuration",
"id": "nx-json",
"file": "shared/reference/nx-json"
},
{
"name": "Project Configuration",
"id": "project-configuration",
"tags": [],
"file": "shared/reference/project-configuration"
},
{
"name": "Inputs and Named Inputs",
"id": "inputs",
"tags": ["cache-task-results"],
"file": "shared/reference/inputs"
},
{
"name": ".nxignore",
"id": "nxignore",
"tags": ["enforce-module-boundaries"],
"file": "shared/reference/nxignore"
},
{
"name": "Environment Variables",
"id": "environment-variables",
"tags": ["environment-variables"],
"file": "shared/reference/environment-variables"
},
{
"name": "Glossary",
"id": "glossary",
"tags": [],
"file": "shared/reference/glossary"
},
{
"name": "Releases",
"id": "releases",
"tags": [],
"file": "shared/reference/releases"
}
]
},
{
"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": "Troubleshoot 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": ["environment-variables"],
"file": "shared/guides/performance-profiling"
},
{
"name": "Troubleshoot Nx Console Issues",
"id": "console-troubleshooting",
"path": "/recipes/nx-console/console-troubleshooting",
"file": "shared/recipes/console-troubleshooting"
},
{
"name": "Troubleshoot Convert to Inferred Migration",
"id": "convert-to-inferred",
"tags": [],
"file": "shared/guides/troubleshoot-convert-to-inferred"
}
]
},
{
"name": "Deprecated",
"id": "deprecated",
"description": "Functionality that has been superseded in the current version of Nx. Listed here for those running older versions.",
"itemList": [
{
"name": "affected:graph",
"id": "affected-graph",
"file": "shared/deprecated/affected-graph"
},
{
"name": "print-affected",
"id": "print-affected",
"file": "shared/deprecated/print-affected"
},
{
"name": "workspace.json",
"id": "workspace-json",
"file": "shared/deprecated/workspace-json"
},
{
"name": "As Provided vs. Derived",
"id": "as-provided-vs-derived",
"file": "shared/deprecated/as-provided-vs-derived"
},
{
"name": "Workspace Generators",
"id": "workspace-generators",
"file": "shared/deprecated/workspace-generators"
},
{
"name": "Legacy Cache",
"id": "legacy-cache",
"file": "shared/deprecated/legacy-cache"
},
{
"name": "Custom Tasks Runner",
"id": "custom-tasks-runner",
"file": "shared/deprecated/custom-tasks-runner"
},
{
"name": "Workspace Executors",
"id": "workspace-executors",
"file": "shared/deprecated/workspace-executors"
},
{
"name": "runtimeCacheInputs",
"id": "runtime-cache-inputs",
"file": "shared/deprecated/runtime-cache-inputs"
},
{
"name": "cacheableOperations",
"id": "cacheable-operations",
"file": "shared/deprecated/cacheable-operations"
},
{
"name": "npmScope",
"id": "npm-scope",
"file": "shared/deprecated/npm-scope"
},
{
"name": "globalImplicitDependencies",
"id": "global-implicit-dependencies",
"file": "shared/deprecated/global-implicit-dependencies"
},
{
"name": "Angular Schematics and Builders",
"id": "angular-schematics-builders",
"file": "shared/deprecated/angular-schematics-builders"
},
{
"name": "v1 Nx Plugin API",
"id": "v1-nx-plugin-api",
"file": "shared/deprecated/v1-nx-plugin-api"
},
{
"name": "Rescope Packages from @nrwl to @nx",
"id": "rescope",
"file": "shared/deprecated/rescope"
},
{
"name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps",
"id": "integrated-vs-package-based",
"file": "shared/deprecated/integrated-vs-package-based"
}
]
},
{
"name": "See Also",
"id": "see-also",
"description": "Links to other pieces of documentation",
"itemList": [
{
"name": "CI Documentation",
"id": "ci",
"file": "",
"tags": ["cache-task-results", "distribute-task-execution"],
"path": "/ci/intro/ci-with-nx",
"isExternal": true
},
{
"name": "Nx Cloud Main Site",
"id": "nx-cloud-main-site",
"file": "",
"tags": ["cache-task-results", "distribute-task-execution"],
"path": "https://nx.app",
"isExternal": true
},
{
"name": "--skip-nx-cache flag",
"id": "skip-nx-cache-flag",
"file": "",
"tags": ["cache-task-results"],
"path": "/nx-api/nx/documents/affected#skip-nx-cache",
"isExternal": true
},
{
"name": "tasks-runner-options property",
"id": "tasks-runner-options-property",
"file": "",
"tags": ["cache-task-results"],
"path": "/reference/nx-json#tasks-runner-options",
"isExternal": true
},
{
"name": "nx.json reference: inputs and namedInputs",
"id": "nxjson-inputs",
"file": "",
"tags": ["cache-task-results"],
"path": "/reference/nx-json#inputs-namedinputs",
"isExternal": true
},
{
"name": "Project Configuration reference: inputs and namedInputs",
"id": "project-config-inputs",
"file": "",
"tags": ["cache-task-results"],
"path": "/reference/project-configuration#inputs-and-namedinputs",
"isExternal": true
},
{
"name": "nx.json generator defaults",
"id": "nxjson-generator-defaults",
"file": "",
"tags": ["generate-code"],
"path": "/reference/nx-json#generators",
"isExternal": true
},
{
"name": "Site Map",
"id": "sitemap",
"tags": [],
"file": "shared/reference/sitemap"
}
]
}
]
},
{
"name": "Extending Nx",
"id": "extending-nx",
"description": "Learn more about creating your own plugin, extending Nx.",
"itemList": [
{
"name": "Intro",
"id": "intro",
"description": "Learn about plugins.",
"itemList": [
{
"name": "Extending Nx with Plugins",
"id": "getting-started",
"description": "Learn how to extend Nx by creating and releasing your own Nx plugin.",
"file": "shared/plugins/intro"
}
]
},
{
"name": "Tutorials",
"id": "tutorials",
"description": "Get started with plugins",
"itemList": [
{
"name": "Enforce Organizational Best Practices",
"id": "organization-specific-plugin",
"file": "shared/plugins/organization-specific-plugin"
},
{
"name": "Create a Tooling Plugin",
"id": "tooling-plugin",
"file": "shared/plugins/tooling-plugin"
}
]
},
{
"name": "Recipes",
"id": "recipes",
"description": "Focused instructions to complete a specific task",
"itemList": [
{
"name": "Write a Simple Generator",
"id": "local-generators",
"tags": ["generate-code"],
"file": "shared/recipes/generators/local-generators"
},
{
"name": "Compose Generators",
"id": "composing-generators",
"tags": ["generate-code"],
"file": "shared/recipes/generators/composing-generators"
},
{
"name": "Provide Options for Generators",
"id": "generator-options",
"tags": ["generate-code"],
"file": "shared/recipes/generators/generator-options"
},
{
"name": "Create Files",
"id": "creating-files",
"tags": ["generate-code"],
"file": "shared/recipes/generators/creating-files"
},
{
"name": "Modify Files",
"id": "modifying-files",
"tags": ["generate-code"],
"file": "shared/recipes/generators/modifying-files"
},
{
"name": "Create a Sync Generator",
"id": "create-sync-generator",
"tags": ["generate-code", "sync"],
"file": "shared/recipes/generators/create-sync-generator"
},
{
"name": "Write a Migration",
"id": "migration-generators",
"tags": ["create-your-own-plugin"],
"file": "shared/recipes/plugins/migration-generators"
},
{
"name": "Write a Simple Executor",
"id": "local-executors",
"tags": [],
"file": "shared/recipes/plugins/local-executors"
},
{
"name": "Compose Executors",
"id": "compose-executors",
"tags": [],
"file": "shared/recipes/plugins/compose-executors"
},
{
"name": "Create a Preset",
"id": "create-preset",
"tags": ["create-your-own-plugin"],
"file": "shared/recipes/plugins/create-preset"
},
{
"name": "Create an Install Package",
"id": "create-install-package",
"tags": ["create-your-own-plugin"],
"file": "shared/recipes/plugins/create-install-package"
},
{
"name": "Infer Tasks or Projects",
"id": "project-graph-plugins",
"tags": [
"create-your-own-plugin",
"explore-graph",
"inferred-tasks"
],
"file": "shared/recipes/plugins/project-graph-plugins"
},
{
"name": "Publish a Plugin",
"id": "publish-plugin",
"tags": ["create-your-own-plugin"],
"file": "shared/recipes/plugins/publish-plugin"
}
]
}
]
},
{
"name": "CI",
"id": "ci",
"description": "Learn how to enable Distributed Tasks Executions, remote caching and more.",
"itemList": [
{
"name": "Intro",
"id": "intro",
"description": "Learn about basic Nx Cloud knowledge.",
"itemList": [
{
"name": "CI with Nx",
"id": "ci-with-nx",
"file": "nx-cloud/intro/ci-with-nx"
},
{
"name": "Why Nx Cloud?",
"id": "why-nx-cloud",
"file": "nx-cloud/intro/why-nx-cloud"
},
{
"name": "Connect to Nx Cloud",
"id": "connect-to-nx-cloud",
"file": "nx-cloud/intro/connect-to-cloud"
},
{
"name": "Tutorials",
"id": "tutorials",
"description": "Tutorials setting up CI with Nx",
"itemList": [
{
"name": "Circle CI with Nx",
"id": "circle",
"file": "nx-cloud/tutorial/circle"
},
{
"name": "GitHub Actions with Nx",
"id": "github-actions",
"file": "nx-cloud/tutorial/github-actions"
}
]
}
]
},
{
"name": "Features",
"id": "features",
"description": "Features of Nx and Nx Cloud that improve CI",
"itemList": [
{
"name": "Run Only Tasks Affected by a PR",
"description": "This allows to only run tasks on projects that got changed in a given PR.",
"tags": ["run-tasks"],
"id": "affected",
"file": "shared/using-nx/affected"
},
{
"name": "Use Remote Caching (Nx Replay)",
"description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.",
"id": "remote-cache",
"tags": ["remote-cache"],
"file": "shared/features/remote-cache"
},
{
"name": "Distribute Task Execution (Nx Agents)",
"id": "distribute-task-execution",
"description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.",
"file": "shared/features/distribute-task-execution"
},
{
"name": "Automatically Split E2E Tasks (Atomizer)",
"id": "split-e2e-tasks",
"description": "Learn how Nx can automatically split e2e tests into fine-grained chunks for a much better distribution on Nx Agents.",
"file": "nx-cloud/features/split-e2e-tasks"
},
{
"name": "Identify and Re-run Flaky Tasks",
"id": "flaky-tasks",
"description": "Learn how Nx Cloud is able to automatically identify flaky tasks and re-run them for you.",
"file": "nx-cloud/features/flaky-tasks"
},
{
"name": "Dynamically Allocate Agents",
"description": "Learn how to dynamically allocate agents based on the size of a PR, keeping the balance of speed and cost.",
"id": "dynamic-agents",
"file": "nx-cloud/features/dynamic-agents"
},
{
"name": "Explain With AI",
"id": "explain-with-ai",
"file": "nx-cloud/features/explain-with-ai"
},
{
"name": "GitHub Integration",
"id": "github-integration",
"file": "nx-cloud/features/github-integration"
}
]
},
{
"name": "Concepts",
"id": "concepts",
"description": "Learn how to manage Nx Cloud subscriptions and other options.",
"itemList": [
{
"name": "The Building Blocks of Fast CI",
"tags": [],
"id": "building-blocks-fast-ci",
"file": "nx-cloud/concepts/building-blocks-fast-ci"
},
{
"name": "Reduce Wasted Time in CI",
"tags": [],
"id": "reduce-waste",
"file": "nx-cloud/concepts/reduce-waste"
},
{
"name": "Parallelization and Distribution",
"tags": ["distribute-task-execution"],
"id": "parallelization-distribution",
"file": "nx-cloud/concepts/parallelization-distribution"
},
{
"name": "Cache Security",
"id": "cache-security",
"file": "nx-cloud/concepts/cache-security"
},
{
"name": "Nx Cloud AI",
"id": "nx-cloud-ai",
"description": "Learn how to enable AI features in Nx Cloud, and what features it enables",
"file": "nx-cloud/concepts/ai-features"
}
]
},
{
"name": "Recipes",
"id": "recipes",
"description": "Learn how to set up Nx Cloud for your workspace.",
"itemList": [
{
"name": "Set Up CI",
"id": "set-up",
"description": "Learn how to set up Nx Cloud for your workspace.",
"tags": ["distribute-task-execution"],
"itemList": [
{
"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": "Security",
"id": "security",
"description": "Manage access to Nx Cloud",
"itemList": [
{
"name": "Authenticate with Google Identity",
"id": "google-auth",
"file": "nx-cloud/recipes/google-auth"
},
{
"name": "CI Access Tokens",
"id": "access-tokens",
"file": "nx-cloud/recipes/access-tokens"
},
{
"name": "Personal Access Tokens",
"id": "personal-access-tokens",
"tags": ["login"],
"file": "nx-cloud/recipes/personal-access-tokens"
},
{
"name": "Enable End to End Encryption",
"id": "encryption",
"file": "nx-cloud/recipes/encryption"
}
]
},
{
"name": "Source Control Integration",
"id": "source-control-integration",
"description": "Show Nx Cloud results directly in your pull request",
"itemList": [
{
"name": "Enable GitHub PR Integration",
"id": "github",
"file": "nx-cloud/set-up/github"
},
{
"name": "Enable Bitbucket PR Integration",
"id": "bitbucket",
"file": "nx-cloud/set-up/bitbucket"
},
{
"name": "Enable GitLab MR Integration",
"id": "gitlab",
"file": "nx-cloud/set-up/gitlab"
},
{
"name": "Enable Azure DevOps PR Integration",
"id": "azure-devops",
"file": "nx-cloud/set-up/azure-devops"
}
]
},
{
"name": "Enterprise",
"id": "enterprise",
"description": "Recipes for enterprise accounts",
"itemList": [
{
"name": "Single Tenant",
"id": "single-tenant",
"description": "Manage an on-premise installation of Nx Cloud",
"itemList": [
{
"name": "Single Tenant Nx Cloud Hosting",
"id": "overview",
"tags": ["single-tenant"],
"file": "nx-cloud/enterprise/single-tenant/overview"
},
{
"name": "Authenticate with GitHub",
"id": "auth-github",
"file": "nx-cloud/enterprise/single-tenant/auth-github"
},
{
"name": "Authenticate with GitLab",
"id": "auth-gitlab",
"file": "nx-cloud/enterprise/single-tenant/auth-gitlab"
},
{
"name": "Authenticate with BitBucket",
"id": "auth-bitbucket",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket"
},
{
"name": "Authenticate with BitBucket Data Center",
"id": "auth-bitbucket-data-center",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center"
},
{
"name": "Authenticate via SAML",
"id": "auth-saml",
"file": "nx-cloud/enterprise/single-tenant/auth-saml"
},
{
"name": "Custom GitHub App",
"id": "custom-github-app",
"file": "nx-cloud/enterprise/single-tenant/custom-github-app"
}
]
},
{
"name": "Custom Distributed Task Execution",
"id": "dte",
"description": "Custom DTE on your own CI provider",
"itemList": [
{
"name": "GitHub Actions Custom DTE",
"id": "github-dte",
"file": "nx-cloud/enterprise/dte/github-dte"
},
{
"name": "Circle CI Custom DTE",
"id": "circle-ci-dte",
"file": "nx-cloud/enterprise/dte/circle-ci-dte"
},
{
"name": "Azure Pipelines Custom DTE",
"id": "azure-dte",
"file": "nx-cloud/enterprise/dte/azure-dte"
},
{
"name": "Bitbucket Pipelines Custom DTE",
"id": "bitbucket-dte",
"file": "nx-cloud/enterprise/dte/bitbucket-dte"
},
{
"name": "GitLab Custom DTE",
"id": "gitlab-dte",
"file": "nx-cloud/enterprise/dte/gitlab-dte"
},
{
"name": "Jenkins Custom DTE",
"id": "jenkins-dte",
"file": "nx-cloud/enterprise/dte/jenkins-dte"
}
]
},
{
"name": "Conformance",
"id": "conformance",
"description": "Conformance features that are available to Nx Cloud Enterprise customers",
"itemList": [
{
"name": "Configure Conformance Rules in Nx Cloud",
"id": "configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"],
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud"
},
{
"name": "Publish Conformance Rules to Nx Cloud",
"id": "publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"],
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud"
}
]
}
]
},
{
"name": "Other",
"id": "other",
"description": "Learn how to set up Nx Cloud for your workspace.",
"itemList": [
{
"name": "Record Non-Nx Commands",
"id": "record-commands",
"file": "nx-cloud/set-up/record-commands"
},
{
"name": "Prepare applications for deployment via CI",
"id": "ci-deployment",
"tags": ["docker", "deploy"],
"file": "shared/recipes/ci-deployment"
},
{
"name": "Reduce the Number of Affected Projects in a CI Pipeline Execution",
"id": "cipe-affected-project-graph",
"file": "nx-cloud/recipes/cipe-affected-project-graph"
}
]
}
]
},
{
"name": "Reference",
"id": "reference",
"description": "Understand how to use Nx Cloud, what arguments and options are available for each component.",
"itemList": [
{
"name": "Configuration Options",
"id": "config",
"file": "nx-cloud/reference/config"
},
{
"name": "nx-cloud CLI",
"id": "nx-cloud-cli",
"file": "nx-cloud/reference/nx-cloud-cli"
},
{
"name": "Launch Templates",
"id": "launch-templates",
"file": "nx-cloud/reference/launch-templates"
},
{
"name": "Assignment Rules",
"id": "assignment-rules",
"file": "nx-cloud/reference/assignment-rules"
},
{
"name": "Custom Steps",
"id": "custom-steps",
"file": "nx-cloud/reference/custom-steps"
},
{
"name": "Environment Variables",
"id": "env-vars",
"file": "nx-cloud/reference/env-vars"
},
{
"name": "Release Notes",
"id": "release-notes",
"file": "nx-cloud/reference/release-notes"
}
]
},
{
"name": "Troubleshooting",
"id": "troubleshooting",
"description": "Learn how to solve common issues in Nx Cloud.",
"itemList": [
{
"name": "CI Execution Failed",
"id": "ci-execution-failed",
"file": "nx-cloud/troubleshooting/ci-execution-failed"
}
]
}
]
},
{
"name": "Changelog",
"id": "changelog",
"file": "",
"path": "/changelog",
"isExternal": true
},
{
"name": "additional api references",
"id": "additional-api-references",
"description": "Package reference.",
"itemList": [
{
"name": "nx",
"id": "nx",
"description": "Nx package",
"itemList": [
{
"name": "create-nx-workspace",
"id": "create-nx-workspace",
"tags": ["installation"],
"file": "generated/cli/create-nx-workspace"
},
{
"name": "init",
"id": "init",
"tags": ["init"],
"file": "generated/cli/init"
},
{
"name": "generate",
"id": "generate",
"tags": ["generate-code"],
"file": "generated/cli/generate"
},
{
"name": "run",
"tags": ["run-tasks"],
"id": "run",
"file": "generated/cli/run"
},
{
"name": "daemon",
"id": "daemon",
"tags": ["daemon"],
"file": "generated/cli/daemon"
},
{
"name": "graph",
"id": "dep-graph",
"tags": ["explore-graph"],
"file": "generated/cli/graph"
},
{
"name": "run-many",
"tags": ["run-tasks"],
"id": "run-many",
"file": "generated/cli/run-many"
},
{
"name": "affected",
"tags": ["run-tasks"],
"id": "affected",
"file": "generated/cli/affected"
},
{
"name": "format:check",
"id": "format-check",
"tags": ["enforce-module-boundaries"],
"file": "generated/cli/format-check"
},
{
"name": "format:write",
"id": "format-write",
"tags": ["enforce-module-boundaries"],
"file": "generated/cli/format-write"
},
{
"name": "migrate",
"id": "migrate",
"tags": ["automate-updating-dependencies"],
"file": "generated/cli/migrate"
},
{
"name": "report",
"id": "report",
"file": "generated/cli/report"
},
{
"name": "list",
"id": "list",
"file": "generated/cli/list"
},
{
"name": "connect-to-nx-cloud",
"id": "connect-to-nx-cloud",
"tags": ["cache-task-results", "distribute-task-execution"],
"file": "generated/cli/connect"
},
{
"name": "reset",
"id": "reset",
"tags": ["cache-task-results"],
"file": "generated/cli/reset"
},
{
"name": "repair",
"id": "repair",
"file": "generated/cli/repair"
},
{
"name": "sync",
"id": "sync",
"tags": ["sync"],
"file": "generated/cli/sync"
},
{
"name": "sync:check",
"id": "sync-check",
"tags": ["sync"],
"file": "generated/cli/sync-check"
},
{
"name": "import",
"id": "import",
"tags": ["import"],
"file": "generated/cli/import"
},
{
"name": "exec",
"id": "exec",
"tags": ["exec"],
"file": "generated/cli/exec"
},
{
"name": "watch",
"id": "watch",
"tags": ["workspace-watching"],
"file": "generated/cli/watch"
},
{
"name": "show",
"id": "show",
"tags": ["explore-graph"],
"file": "generated/cli/show"
},
{
"name": "view-logs",
"id": "view-logs",
"file": "generated/cli/view-logs"
},
{
"name": "release",
"id": "release",
"tags": ["nx-release"],
"file": "generated/cli/release"
},
{
"name": "add",
"id": "add",
"tags": ["add"],
"file": "generated/cli/add"
},
{
"name": "login",
"id": "login",
"tags": ["login"],
"file": "generated/cli/login"
},
{
"name": "logout",
"id": "logout",
"tags": ["login"],
"file": "generated/cli/logout"
}
]
},
{
"name": "workspace",
"id": "workspace",
"description": "Workspace package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/workspace",
"file": "shared/packages/workspace/workspace-plugin"
},
{
"name": "Nx, NodeJS and Typescript Versions",
"id": "nx-nodejs-typescript-version-matrix",
"file": "shared/packages/workspace/nx-compatibility-matrix"
}
]
},
{
"name": "Nx Plugin",
"id": "plugin",
"description": "Plugin package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/plugin",
"file": "shared/packages/plugin/plugin"
}
]
},
{
"name": "Nx Devkit",
"id": "devkit",
"description": "Devkit package.",
"itemList": [
{
"id": "nx_devkit",
"name": "Overview",
"file": "generated/devkit/README"
},
{
"id": "ngcli_adapter",
"name": "Ng CLI Adapter",
"file": "generated/devkit/ngcli_adapter/README"
}
]
},
{
"name": "js",
"id": "js",
"description": "JS package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/js",
"file": "shared/packages/js/js-plugin"
}
]
},
{
"name": "web",
"id": "web",
"description": "Web package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/web",
"file": "shared/packages/web/web-plugin"
}
]
},
{
"name": "esbuild",
"id": "esbuild",
"description": "esbuild package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/esbuild",
"file": "shared/packages/esbuild/esbuild-plugin"
}
]
},
{
"name": "vite",
"id": "vite",
"description": "Vite package.",
"itemList": [
{
"id": "overview",
"path": "/nx-api/vite",
"name": "Overview",
"description": "The Nx Plugin for Vite contains executors and generators that support building applications using Vite. This page also explains how to configure Vite on your Nx workspace.",
"file": "shared/packages/vite/vite-plugin"
}
]
},
{
"name": "vue",
"id": "vue",
"description": "Vue package.",
"itemList": [
{
"id": "overview",
"path": "/nx-api/vue",
"name": "Overview",
"description": "The Nx Plugin for Vue contains generators for managing Vue applications and libraries within an Nx workspace. This page also explains how to configure Vue on your Nx workspace.",
"file": "shared/packages/vue/vue-plugin"
}
]
},
{
"name": "nuxt",
"id": "nuxt",
"description": "Nuxt package.",
"itemList": [
{
"id": "overview",
"path": "/nx-api/nuxt",
"name": "Overview",
"description": "The Nx Plugin for Nuxt contains generators for managing Nuxt applications within a Nx workspace. This page also explains how to configure Nuxt on your Nx workspace.",
"file": "shared/packages/nuxt/nuxt-plugin"
}
]
},
{
"name": "webpack",
"id": "webpack",
"description": "Webpack package.",
"itemList": [
{
"id": "overview",
"path": "/nx-api/webpack",
"name": "Overview",
"description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.",
"file": "shared/packages/webpack/plugin-overview"
}
]
},
{
"name": "angular",
"id": "angular",
"description": "Angular package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/angular",
"file": "shared/packages/angular/angular-plugin"
},
{
"name": "Nx and the Angular CLI",
"id": "nx-and-angular",
"file": "shared/guides/nx-and-angular-cli"
},
{
"name": "Nx Devkit and Angular Devkit",
"id": "nx-devkit-angular-devkit",
"tags": ["create-your-own-plugin"],
"file": "shared/guides/nx-devkit-angular-devkit"
},
{
"name": "Angular and Nx Version Matrix",
"id": "angular-nx-version-matrix",
"file": "shared/packages/angular/angular-nx-version-matrix",
"path": "/angular-nx-version-matrix"
}
]
},
{
"name": "react",
"id": "react",
"description": "React package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/react",
"file": "shared/packages/react/react-plugin"
}
]
},
{
"name": "jest",
"id": "jest",
"description": "Jest package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/jest",
"file": "shared/packages/jest/jest-plugin"
}
]
},
{
"name": "cypress",
"id": "cypress",
"description": "Cypress package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/cypress",
"file": "shared/packages/cypress/cypress-plugin"
}
]
},
{
"name": "playwright",
"id": "playwright",
"description": "Playwright package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/playwright",
"file": "shared/packages/playwright/playwright-plugin"
}
]
},
{
"name": "storybook",
"id": "storybook",
"description": "Storybook package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"description": "This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace.",
"path": "/nx-api/storybook",
"file": "shared/packages/storybook/plugin-overview"
},
{
"id": "best-practices",
"name": "Storybook best practices for making the most out of Nx",
"description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.",
"file": "shared/packages/storybook/best-practices"
},
{
"id": "storybook-7-setup",
"name": "Storybook 7",
"description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.",
"file": "shared/packages/storybook/storybook-7-setup"
}
]
},
{
"name": "eslint",
"id": "eslint",
"description": "Linter package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/eslint",
"file": "shared/packages/eslint/eslint"
}
]
},
{
"name": "eslint-plugin",
"id": "eslint-plugin",
"description": "ESLint plugin package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/eslint-plugin",
"file": "shared/packages/eslint/eslint-plugin"
},
{
"id": "enforce-module-boundaries",
"name": "The `enforce-module-boundaries` rule",
"path": "/nx-api/eslint-plugin",
"file": "shared/packages/eslint/enforce-module-boundaries"
},
{
"id": "dependency-checks",
"name": "The `dependency-checks` rule",
"path": "/nx-api/eslint-plugin",
"file": "shared/packages/eslint/dependency-checks"
}
]
},
{
"name": "node",
"id": "node",
"description": "Node package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/node",
"file": "shared/packages/node/node-plugin"
}
]
},
{
"name": "express",
"id": "express",
"description": "Express package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/express",
"file": "shared/packages/express/express-plugin"
}
]
},
{
"name": "nest",
"id": "nest",
"description": "Nest package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/nest",
"file": "shared/packages/nest/nest-plugin"
}
]
},
{
"name": "next",
"id": "next",
"description": "Next package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/next",
"file": "shared/packages/next/plugin-overview"
}
]
},
{
"name": "remix",
"id": "remix",
"description": "Remix package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/remix",
"file": "shared/packages/remix/remix-plugin"
}
]
},
{
"name": "rspack",
"id": "rspack",
"description": "Rspack package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/rspack",
"file": "shared/packages/rspack/rspack-plugin"
}
]
},
{
"name": "detox",
"id": "detox",
"description": "Detox package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/detox",
"file": "shared/packages/detox/detox-plugin"
}
]
},
{
"name": "react native",
"id": "react-native",
"description": "React Native package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/react-native",
"file": "shared/packages/react-native/react-native-plugin"
}
]
},
{
"name": "expo",
"id": "expo",
"description": "Expo package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/expo",
"file": "shared/packages/expo/expo-plugin"
}
]
},
{
"name": "powerpack-owners",
"id": "powerpack-owners",
"description": "powerpack-owners package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/powerpack-owners",
"file": "shared/packages/powerpack-owners/powerpack-owners-plugin"
}
]
},
{
"name": "powerpack-conformance",
"id": "powerpack-conformance",
"description": "powerpack-conformance package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/powerpack-conformance",
"file": "shared/packages/powerpack-conformance/powerpack-conformance-plugin"
},
{
"name": "Create a Conformance Rule",
"id": "create-conformance-rule",
"path": "/nx-api/powerpack-conformance",
"file": "shared/packages/powerpack-conformance/create-conformance-rule"
}
]
},
{
"name": "powerpack-azure-cache",
"id": "powerpack-azure-cache",
"description": "powerpack-azure-cache package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/powerpack-azure-cache",
"file": "shared/packages/powerpack-azure-cache/powerpack-azure-cache-plugin"
}
]
},
{
"name": "powerpack-gcs-cache",
"id": "powerpack-gcs-cache",
"description": "powerpack-gcs-cache package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/powerpack-gcs-cache",
"file": "shared/packages/powerpack-gcs-cache/powerpack-gcs-cache-plugin"
}
]
},
{
"name": "powerpack-s3-cache",
"id": "powerpack-s3-cache",
"description": "powerpack-s3-cache package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/powerpack-s3-cache",
"file": "shared/packages/powerpack-s3-cache/powerpack-s3-cache-plugin"
}
]
},
{
"name": "powerpack-shared-fs-cache",
"id": "powerpack-shared-fs-cache",
"description": "powerpack-shared-fs-cache package.",
"itemList": [
{
"name": "Overview",
"id": "overview",
"path": "/nx-api/powerpack-shared-fs-cache",
"file": "shared/packages/powerpack-shared-fs-cache/powerpack-shared-fs-cache-plugin"
}
]
},
{
"name": "gradle",
"id": "gradle",
"description": "Gradle package.",
"itemList": [
{
"id": "overview",
"name": "Overview",
"path": "/nx-api/gradle",
"file": "shared/packages/gradle/gradle-plugin"
}
]
}
]
}
]
}