Nx plugins help developers use a tool or framework with Nx. They allow the plugin author who knows the best way to use a tool with Nx to codify their expertise and allow the whole community to reuse those solutions.
For example, plugins can accomplish the following:
- Configure Nx cache settings for a tool. The
@nx/webpackplugin can automatically configure the inputs and outputs for abuildtask based on the settings in thewebpack.config.jsfile it uses. - Update tooling configuration when upgrading the tool version. When Storybook 7 introduced a new format for their configuration files, anyone using the
@nx/storybookplugin could automatically apply those changes to their repository when upgrading. - Set up a tool for the first time. With the
@nx/playwrightplugin installed, you can use the@nx/playwright:configurationcode generator to set up Playwright tests in an existing project. - Run a tool in an advanced way. The
@nx/jsplugin's@nx/js:tscexecutor combines Nx's understanding of your repository with Typescript's native batch mode feature to make your builds even more performant.
Plugin Features
Section titled “Plugin Features” Infer tasks Automatically configure Nx settings for tasks based on tooling configuration
Generate Code Generate and modify code to set up and use the tool or framework
Maintain Dependencies Automatically update package versions and tooling configuration
Enhance Tooling with Executors Run a tool in an advanced way that may not be possible from the command line
Types of Plugins
Section titled “Types of Plugins” Official and Community Plugins Browse the plugin registry to discover plugins created by the Nx core team and the community
Build Your Own Plugin Build your own plugin to use internally or share with the community