Rollup is a module bundler for JavaScript libraries and applications. In a Rollup monorepo, Nx builds and caches projects across your workspace and rebuilds only what a change affects.
The Nx Plugin for Rollup contains executors and generators that support building applications with Rollup.
Requirements
Section titled “Requirements”The @nx/rollup plugin supports the following package versions.
| Package | Supported Versions |
|---|---|
rollup | ^3.0.0 || ^4.0.0 |
Nx generators install the latest supported versions automatically when scaffolding new projects.
Setting up @nx/rollup
Section titled “Setting up @nx/rollup”Installation
Section titled “Installation”In any Nx workspace, you can install @nx/rollup by running the following command:
nx add @nx/rollupThis will install the correct version of @nx/rollup.
Configure task inference
Section titled “Configure task inference”The @nx/rollup/plugin plugin looks for these Rollup configuration files:
rollup.config.jsrollup.config.cjsrollup.config.mjsrollup.config.tsrollup.config.ctsrollup.config.mts
A configuration file is associated with a project when its directory also contains a package.json or project.json. Nx creates a cached build task that runs rollup -c, with outputs based on your Rollup configuration, and depends on the same task in dependency projects.
Configure the plugin in nx.json:
{ "plugins": [ { "plugin": "@nx/rollup/plugin", "options": { "buildTargetName": "build", "buildDepsTargetName": "build-deps", "watchDepsTargetName": "watch-deps" } } ]}| Option | Type | Default | Description |
|---|---|---|---|
buildTargetName | string | build | Name of the cached Rollup build task. |
buildDepsTargetName | string | build-deps | Name of the task that builds project dependencies. |
watchDepsTargetName | string | watch-deps | Name of the task that watches project dependencies. |
Use include and exclude glob patterns on the plugin entry to scope inference. A target defaults plugin filter must use the exact identifier @nx/rollup/plugin.
Using @nx/rollup
Section titled “Using @nx/rollup”Generate a new project using Rollup
Section titled “Generate a new project using Rollup”You can generate a new library that uses Rollup with the following command:
nx g @nx/js:lib mylib --bundler=rollupThis will create a new library configured to use Rollup for building.
Set up CI for your Rollup monorepo
Section titled “Set up CI for your Rollup monorepo”In CI, Nx runs nx affected to rebuild and retest only the projects a change touches, and caches results to skip repeated work.
For a complete pipeline, see Set up CI.