Glossary

This is a short list of Nx-specific terms that will help you understand the rest of the documentation.

Terms

Application

A project that can run on its own. Generally uses libraries.

See: Applications and Libraries

Buildable Library

A library that has a build target. Some libraries can be generated with a build target using the --buildable flag.

See: Publishable and Buildable Nx Libraries

Cache

A mechanism for saving the output of a calculation so it can be replayed later without actually performing the calculation again.

See: Cache Task Results

Cache Hit

When the cache inputs for a task match an existing entry in the cache and the cache outputs can be replayed without actually running the task.

See: Cache Task Results

Cache Inputs

Everything that might change the output of a task. This may include source code, task options, environment variables and other settings determined at run time. These values are combined as a hash to serve as a key for an entry in the cache.

See: Customizing Inputs and Named Inputs

Cache Miss

When the cache inputs for a task do not match an existing entry in the cache and the task needs to be executed.

See: Cache Task Results

Cache Outputs

The terminal output and any file artifacts created by running a task. These values are stored in the cache to be replayed later.

See: Outputs Reference

Command

Anything you run in the terminal. An example command that invokes a task is nx build my-app.

See: Run Tasks

Configurations

A set of preconfigured options for a target that should be enabled altogether. For example, a production configuration would set all the options needed for a build that could be deployed to production.

See: Use Executor Configurations

Distributed Cache

A cache that can be shared between all developers using the repo and the CI system.

See: Share Your Cache

Distributed Task Execution

A system for running tasks in CI across multiple agent processes in the most efficient way possible.

See: Distribute Task Execution

Executor

A script that performs some action on your code. This can include building, linting, testing, serving and many other actions. A target configuration specifies an executor and a set of options. Executors can be found in plugins.

See: Use Task Executors

Generator

A script that creates or modifies your code. Generators can be found in plugins.

See: Use Code Generators

Graph

A computer science concept that consists of nodes connected by edges. In the Nx context, there are two graphs: the project graph which describes dependencies between projects and the task graph which describes dependencies between tasks.

See: Explore the Graph

Integrated Repository

A repository using Nx plugins to boost efficiency and ease of maintenance.

See: Integrated Repos vs. Package-Based Repos

Library

A project that is used by applications or other libraries.

See: Applications and Libraries

Monolith

A large application that is difficult to separate into smaller pieces.

See: Applications and Libraries

Monorepo

A repository with multiple projects.

See: monorepo.tools

Nested Project

A project that is located in a sub-folder of another project. This was made possible in Nx 15.3.

Nx Cloud

A service that provides distributed caching and distributed task execution.

See: CI with Nx

Package

A project. It is sometimes published as an npm package.

Package-based Repository

A repository using Nx without plugins that prioritizes the independence of the separate packages. Nx is added to the repo without significantly affecting the file structure or build settings.

See: Integrated Repos vs. Package-Based Repos

Plugin

A set of executors, generators and other code that extends the functionality of Nx. May be installed from a package manager like NPM or developed directly in the repository.

See: Create Your Own Plugin

Polyrepo

Related projects spread across multiple repositories.

Project

The unit of code on which a task can be run. A project can be an application or a library.

See: Applications and Libraries

Publishable Library

A library that has a publish target. Some libraries can be generated with a publish target using the --publishable flag.

See: Publishable and Buildable Nx Libraries

Root-Level Project

A project that has its own root folder at the root of the repository. Every other project in the repo is a nested project.

Standalone Repository

A repository with a single application at the root level. This set up is made possible in Nx 15.3.

Target

The name of an action taken on a project.

See: Run Tasks

Task

An invocation of a target on a specific project.

See: Run Tasks

Task Pipeline

The set of dependencies between tasks that ensure that tasks are run in the correct order.

See: Task Pipeline Configuration

Workspace

A git repository. An Nx workspace is a git repository using Nx.