@nx/react:library

Create a React Library for an Nx workspace.

Usage

nx generate library ...
nx g lib ... #same

By default, Nx will search for library in the default collection provisioned in workspace.json.

You can specify the collection explicitly as follows:

Show what will be generated without writing to disk:

nx g library ... --dry-run

Examples

Generate libs/myapp/mylib:

nx g lib mylib --directory=myapp

Generate a library with routes and add them to myapp:

nx g lib mylib --appProject=myapp

Options

name

Required
string
Pattern: ^[a-zA-Z].*$

Library name

bundler

string
Default: none
Accepted values: none, vite, rollup

The bundler to use. Choosing 'none' means this library is not buildable.

directory

dir
string

A directory where the lib is placed.

appProject

a
string

The application project to add the library route to.

component

boolean
Default: true

Generate a default component.

compiler

string
Default: babel
Accepted values: babel, swc

Which compiler to use. Only applies to bundler: 'rollup'.

globalCss

boolean
Default: false

When true, the stylesheet is generated using global CSS instead of CSS modules (e.g. file is *.css rather than *.module.css).

inSourceTests

boolean
Default: false

When using Vitest, separate spec files will not be generated and instead will be included within the source files.

importPath

string

The library name used to import it, like @myorg/my-awesome-lib.

js

boolean
Default: false

Generate JavaScript files rather than TypeScript files.

linter

string
Default: eslint
Accepted values: eslint, none

The tool to use for running lint checks.

minimal

boolean
Default: false

Create a React library with a minimal setup, no separate test files.

pascalCaseFiles

P
boolean
Default: false

Use pascal case component file name (e.g. App.tsx).

publishable

boolean

Create a publishable library.

routing

boolean

Generate library with routes.

style

s
string
Default: css

The file extension to be used for style files.

strict

boolean
Default: true

Whether to enable tsconfig strict mode or not.

setParserOptionsProject

boolean
Default: false

Whether or not to configure the ESLint parserOptions.project option. We do not do this by default for lint performance reasons.

tags

t
string

Add tags to the library (used for linting).

unitTestRunner

string
Accepted values: jest, vitest, none

Test runner to use for unit tests.

skipFormat

boolean
Default: false

Skip formatting files.

skipTsConfig

boolean
Default: false

Do not update tsconfig.json for development experience.

skipPackageJson

boolean
Default: false

Do not add dependencies to package.json.

buildable

Deprecated
boolean
Default: false

Generate a buildable library that uses rollup to bundle.

Use the bundler option for greater control (none, vite, rollup).