Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(misc): update description frontmatter for better SEO #30161

Merged
merged 2 commits into from
Mar 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Nx and Angular Versions
description: A comprehensive compatibility matrix showing which Nx versions work with different Angular versions, including recommended versions and supported ranges.
---

# Nx and Angular Versions

The latest version of Nx supports the [actively supported versions of Angular (current and LTS versions)](https://angular.dev/reference/releases#actively-supported-versions). Workspaces in any of those versions are recommended to use the latest version of Nx to benefit from all the new features and fixes.
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/angular/documents/nx-and-angular.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Nx and the Angular CLI
description: Compare Nx and Angular CLI features, understand similarities and differences, and learn how Nx enhances Angular development with improved caching, monorepo support, and advanced tooling.
---

# Nx and the Angular CLI

{% youtube
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Nx Devkit and Angular Devkit
description: Compare Nx Devkit and Angular Devkit for creating generators and executors, understand key differences in implementation, and learn how to convert between the two approaches.
---

# Nx Devkit and Angular Devkit

{% callout type="note" title="Nx & Angular" %}
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/detox/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Detox Plugin for Nx
description: Learn how to set up and use Detox for end-to-end testing of mobile applications in your Nx workspace, including environment setup and configuration options.
---

Detox is gray box end-to-end testing and automation library for mobile apps. It has a lot of great features:

- Cross Platform
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Dependency Checks ESLint Rule
description: Learn how to use the @nx/dependency-checks ESLint rule to identify mismatches between dependencies in package.json and actual project dependencies.
---

# Dependency Checks rule

The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project depends on. If your project is using, for example, the `axios`, but the `package.json` does not specify it as a dependency, your library might not work correctly. This rule helps catch these problems before your users do.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Enforce Module Boundaries ESLint Rule
description: Learn how to use the @nx/enforce-module-boundaries ESLint rule to define strict rules for accessing resources between different projects in your Nx workspace.
---

# Enforce module boundaries rule

The `@nx/enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/eslint-plugin/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Nx ESLint Plugin
description: An overview of the @nx/eslint-plugin package, which provides recommended ESLint configurations and Nx-specific rules for enforcing module boundaries and dependency checks.
---

The `@nx/eslint-plugin` package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as the following Nx-specific ESLint rules:

- [enforce-module-boundaries](#enforce-module-boundaries-rule)
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/eslint/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: ESLint Plugin for Nx
description: Learn how to set up and use the @nx/eslint plugin to integrate ESLint with Nx, enabling caching and providing code generators for ESLint configuration.
---

The ESLint plugin integrates [ESLint](https://eslint.org/) with Nx. It allows you to run ESLint through Nx with caching enabled. It also includes code generators to help you set up ESLint in your workspace.

## Setting Up @nx/eslint
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/expo/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Expo Plugin for Nx
description: Learn how to use the @nx/expo plugin to manage Expo applications and libraries within an Nx workspace, including setup, configuration, and task inference.
---

Expo is an open-source framework for apps that run natively on Android, iOS, and the web. Expo brings together the best of mobile and the web and enables many important features for building and scaling an app.

Expo is a set of tools built on top of React Native. The Nx Plugin for Expo contains generators for managing Expo applications and libraries within an Nx workspace.
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/express/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Express Plugin for Nx
description: Learn how to use the @nx/express plugin to create and manage Express applications in your Nx workspace, including setup and common recipes.
---

[Express](https://expressjs.com/) is a mature, minimal, and an open source web framework for making web applications and
apis.

Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/nest/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Nest.js Plugin for Nx
description: Learn how to use the @nx/nest plugin to create and manage Nest.js applications and libraries in your Nx workspace, including setup and generators.
---

Nest.js is a framework designed for building scalable server-side applications. In many ways, Nest is familiar to Angular developers:

- It has excellent TypeScript support.
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/node/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Node.js Plugin for Nx
description: Learn how to use the @nx/node plugin to create and manage Node.js applications and libraries in your Nx workspace, including setup, building, and testing.
---

The Node Plugin contains generators and executors to manage Node applications within an Nx workspace. It provides:

## Setting Up @nx/node
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/plugin/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Nx Plugin Development
description: Learn about the @nx/plugin package, which provides tooling to help create and maintain Nx plugins with generators and executors.
---

Nx plugins are npm packages that contain [generators](/features/generate-code) and [executors](/concepts/executors-and-configurations) to extend a Nx workspace.

This package contains tooling to help plugin authors create and maintain plugins.
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/react/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: React Plugin for Nx
description: Learn how to use the @nx/react plugin to create and manage React applications and libraries in your Nx workspace, including components, hooks, and more.
---

The React plugin contains executors and generators for managing React applications and libraries within an Nx workspace.
It provides:

Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/web/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Web Plugin for Nx
description: Learn how to use the @nx/web plugin to create and manage Web Component applications and libraries in your Nx workspace, including testing and building.
---

The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:

- Integration with libraries such as Jest, Cypress, and Storybook.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Nx, NodeJS and TypeScript Compatibility Matrix
description: A reference table showing which versions of Node.js and TypeScript are compatible with different major versions of Nx.
---

# Nx, NodeJS and TypeScript Compatibility Matrix

Below is a reference table that matches versions the latest major versions of Nx to the version TypeScript that it uses
Expand Down
5 changes: 5 additions & 0 deletions docs/generated/packages/workspace/documents/overview.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Workspace Plugin for Nx
description: Learn about the core workspace plugin that provides essential executors and generators for any Nx workspace, including tools for project management.
---

The workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.

## Creating Local Generators
Expand Down
13 changes: 9 additions & 4 deletions docs/shared/concepts/buildable-and-publishable-libraries.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Publishable and Buildable Nx Libraries
description: Learn about buildable and publishable libraries in Nx, when to use them, and how they adjust your project configuration for distribution.
---

# Publishable and Buildable Nx Libraries

The `--buildable` and `--publishable` options are available on the Nx library generators for the following plugins:
Expand All @@ -13,23 +18,23 @@ This document will look to explain the motivations for why you would use either

You might use the `--publishable` option when generating a new Nx library if your intention is to distribute it outside the monorepo.

One typical scenario for this may be that you use Nx to develop your organizations UI design system component library (maybe using its Storybook integration), which should be available also to your organizations apps that are not hosted within the same monorepo.
One typical scenario for this may be that you use Nx to develop your organizations UI design system component library (maybe using its Storybook integration), which should be available also to your organizations' apps that are not hosted within the same monorepo.

A normal Nx library - lets call it "workspace library" - is not made for building or publishing. Rather it only includes common lint and test targets in its `project.json` file. These libraries are directly referenced from one of the monorepos applications and built together with them.
A normal Nx library - let's call it "workspace library" - is not made for building or publishing. Rather it only includes common lint and test targets in its `project.json` file. These libraries are directly referenced from one of the monorepo's applications and built together with them.

Keep in mind that the `--publishable` flag does not enable automatic publishing. Rather it adds to your Nx workspace library a builder target that **compiles** and **bundles** your app. The resulting artifact will be ready to be published to some registry (e.g. [npm](https://npmjs.com/)). By having that builder, you can invoke the build via a command like: `nx build mylib` (where "mylib" is the name of the lib) which will then produce an optimized bundle in the `dist/mylib` folder.

One particularity when generating a library with `--publishable` is that it requires you to also provide an `--importPath`. Your import path is the actual scope of your distributable package (e.g.: `@myorg/mylib`) - which needs to be a [valid npm package name](https://docs.npmjs.com/files/package.json#name).

To publish the library (for example to npm) you can run the CLI command: `npm publish` from the artifact located in the `dist` directory. Setting up some automated script in Nxs `tools` folder may also come in handy.
To publish the library (for example to npm) you can run the CLI command: `npm publish` from the artifact located in the `dist` directory. Setting up some automated script in Nx's `tools` folder may also come in handy.

For more details on the mechanics, remember that Nx is an open source project, so you can see the actual impact of the generator by looking at the source code (the best starting point is probably `packages/<framework>/src/generators/library/library.ts`).

## Buildable libraries

Buildable libraries are similar to "publishable libraries" described above. Their scope however is not to distribute or publish them to some external registry. Thus they might not be optimized for bundling and distribution.

Buildable libraries are mostly used for producing some pre-compiled output that can be directly referenced from an Nx workspace application without the need to again compile it. A typical scenario is to leverage Nxs incremental building capabilities.
Buildable libraries are mostly used for producing some pre-compiled output that can be directly referenced from an Nx workspace application without the need to again compile it. A typical scenario is to leverage Nx's incremental building capabilities.

{% callout type="warning" title="More details" %}
In order for a buildable library to be pre-compiled, it can only depend on other buildable libraries. This allows you to take full advantage of incremental builds.
Expand Down
2 changes: 2 additions & 0 deletions docs/shared/concepts/common-tasks.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
---
title: Common Tasks
description: Learn about standard task naming conventions in Nx projects, including build, serve, test, and lint tasks, for consistent project configuration.
keywords: [build, serve, test, lint]
---

Expand Down
5 changes: 5 additions & 0 deletions docs/shared/concepts/daemon.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Nx Daemon
description: Learn about the Nx Daemon, a background process that speeds up project graph computation in large workspaces by maintaining state between commands.
---

# Nx Daemon

In version 13 we introduced the opt-in Nx Daemon which Nx can leverage to dramatically speed up project graph computation, particularly for large workspaces.
Expand Down
5 changes: 5 additions & 0 deletions docs/shared/concepts/decisions/code-ownership.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Code Ownership
description: Learn about code ownership challenges in monorepos and how Nx helps manage shared code with tools like CODEOWNERS and module boundary rules.
---

# Code Ownership

One of the most obvious benefits of having a monorepo is that you can easily share code across projects. This enables you to apply the Don't Repeat Yourself principle across the whole codebase. Code sharing could mean using a function or a component in multiple projects. Or code sharing could mean using a typescript interface to define the network API interface for both the front end and back end applications.
Expand Down
5 changes: 5 additions & 0 deletions docs/shared/concepts/decisions/dependency-management.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Dependency Management Strategies
description: Compare independently maintained dependencies versus single version policy approaches for monorepos, with guidance on choosing the right strategy for your team.
---

# Dependency Management Strategies

When working with a monorepo, one of the key architectural decisions is how to manage dependencies across your projects. This document outlines two main strategies and helps you choose the right approach for your team.
Expand Down
7 changes: 6 additions & 1 deletion docs/shared/concepts/decisions/folder-structure.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Folder Structure
description: Learn about organizing your Nx monorepo with effective folder structures, and how to easily move or remove projects as your organization evolves.
---

# Folder Structure

Nx can work with any folder structure you choose, but it is good to have a plan in place for the folder structure of your monorepo.
Expand Down Expand Up @@ -51,7 +56,7 @@ libs/

One of the main advantages of using a monorepo is that there is more visibility into code that can be reused across many different applications. Shared projects are a great way to save developers time and effort by reusing a solution to a common problem.

Lets consider our reference monorepo. The `shared-data-access` project contains the code needed to communicate with the back-end (for example, the URL prefix). We know that this would be the same for all libs; therefore, we should place this in the shared lib and properly document it so that all projects can use it instead of writing their own versions.
Let's consider our reference monorepo. The `shared-data-access` project contains the code needed to communicate with the back-end (for example, the URL prefix). We know that this would be the same for all libs; therefore, we should place this in the shared lib and properly document it so that all projects can use it instead of writing their own versions.

```text
libs/
Expand Down
5 changes: 5 additions & 0 deletions docs/shared/concepts/decisions/monorepo-polyrepo.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Monorepo or Polyrepo
description: Evaluate the organizational considerations for choosing between monorepo and polyrepo approaches, including team agreements on code management and workflows.
---

# Monorepo or Polyrepo

Monorepos have a lot of benefits, but there are also some costs involved. We feel strongly that the [technical challenges](/concepts/decisions/why-monorepos) involved in maintaining large monorepos are fully addressed through the efficient use of Nx and Nx Cloud. Rather, the limiting factors in how large your monorepo grows are interpersonal.
Expand Down
9 changes: 7 additions & 2 deletions docs/shared/concepts/decisions/monorepos.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Monorepos
description: Understand the benefits of monorepos including shared code, atomic changes, developer mobility, and consistent dependencies across your organization.
---

# Monorepos

A monorepo is a single git repository that holds the source code for multiple applications and libraries, along with the tooling for them.
Expand All @@ -8,7 +13,7 @@ A monorepo is a single git repository that holds the source code for multiple ap

- **Atomic changes** - Change a server API and modify the downstream applications that consume that API in the same commit. You can change a button component in a shared library and the applications that use that component in the same commit. A monorepo saves the pain of trying to coordinate commits across multiple repositories.

- **Developer mobility** - Get a consistent way of building and testing applications written using different tools and technologies. Developers can confidently contribute to other teams applications and verify that their changes are safe.
- **Developer mobility** - Get a consistent way of building and testing applications written using different tools and technologies. Developers can confidently contribute to other teams' applications and verify that their changes are safe.

- **Single set of dependencies** - [Use a single version of all third-party dependencies](/concepts/decisions/dependency-management), reducing inconsistencies between applications. Less actively developed applications are still kept up-to-date with the latest version of a framework, library, or build tool.

Expand All @@ -34,7 +39,7 @@ Nx provides tools to give you the benefits of a monorepo without the drawbacks o

- **Consistent Code Generation** - Generators allow you to customize and standardize organizational conventions and structure, removing the need to perform the same manual setup tasks repetitively.

- **Affected Commands** - [Nxs affected commands](/nx-api/nx/documents/affected) analyze your source code, the context of the changes, and only runs tasks on the affected projects impacted by the source code changes.
- **Affected Commands** - [Nx's affected commands](/nx-api/nx/documents/affected) analyze your source code, the context of the changes, and only runs tasks on the affected projects impacted by the source code changes.

- **Remote Caching** - Nx provides local caching and support for remote caching of command executions. With remote caching, when someone on your team runs a command, everyone else gets access to those artifacts to speed up their command executions, bringing them down from minutes to seconds. Nx helps you scale your development to massive applications and libraries even more with distributed task execution and incremental builds.

Expand Down
5 changes: 5 additions & 0 deletions docs/shared/concepts/decisions/project-dependency-rules.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Project Dependency Rules
description: Learn how to organize your Nx workspace with library types like feature, UI, data-access, and utility libraries, and enforce dependency rules between them.
---

# Project Dependency Rules

There are many types of libraries in a workspace. You can identify the type of a library through a naming convention and/or by using the project tagging system. With explicitly defined types, you can also use Nx to enforce project dependency rules based on the types of each project. This article explains one possible way to organize your repository projects by type. Every repository is different and yours may need a different set of types.
Expand Down
5 changes: 5 additions & 0 deletions docs/shared/concepts/decisions/project-size.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Project Size
description: Understand the trade-offs of project granularity in Nx, including benefits like faster commands, clearer boundaries, and improved developer experience.
---

# Project Size

Like a lot of decisions in programming, deciding to make a new Nx project or not is all about trade-offs. Each organization will decide on their own conventions, but here are some trade-offs to bear in mind as you have the conversation.
Expand Down
5 changes: 5 additions & 0 deletions docs/shared/concepts/executors-and-configurations.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Executors and Configurations
description: Learn about Nx executors, pre-packaged node scripts that run tasks consistently across projects, and how to configure them in project.json files.
---

# Executors and Configurations

Executors are pre-packaged node scripts that can be used to run tasks in a consistent way.
Expand Down
Loading