@nx/js:library
Create a TypeScript Library.
The State of JS survey is live, featuring a monorepo tools sectionThe State of JS survey is live, featuring a monorepo tools sectionVote for us
Create a TypeScript Library.
The @nx/js:lib
generator will generate a library for you, and it will configure it according to the options you provide.
1npx nx g @nx/js:lib mylib
2
By default, the library that is generated when you use this executor without passing any options, like the example above, will be a buildable library, using the @nx/js:tsc
executor as a builder.
You may configure the tools you want to use to build your library, or bundle it too, by passing the --bundler
flag. The --bundler
flag controls the compiler and/or the bundler that will be used to build your library. If you choose tsc
or swc
, the result will be a buildable library using either tsc
or swc
as the compiler. If you choose rollup
or vite
, the result will be a buildable library using rollup
or vite
as the bundler. In the case of rollup
, it will default to the tsc
compiler. If you choose esbuild
, you may use the esbuildOptions
property in your project.json
under the build
target options to specify whether you wish to bundle your library or not.
Generate a buildable library using the @nx/js:tsc
executor. This uses tsc
as the compiler.
1npx nx g @nx/js:lib mylib
2
1nx generate library ...
2
1nx g lib ... #same
2
By default, Nx will search for library
in the default collection provisioned in workspace.json.
You can specify the collection explicitly as follows:
1nx g @nx/js:library ...
2
Show what will be generated without writing to disk:
1nx g library ... --dry-run
2
(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$
Library name.
tsc
swc
, tsc
, rollup
, vite
, esbuild
, none
The bundler to use. Choosing 'none' means this library is not buildable.
A directory where the lib is placed.
The library name used to import it, like @myorg/my-awesome-lib. Required for publishable library.
false
Generate a publishable library.
Include a .babelrc configuration to compile TypeScript files
false
Generate JavaScript files rather than TypeScript files.
eslint
eslint
, none
The tool to use for running lint checks.
false
Generate a library with a minimal setup. No README.md generated.
as-provided
, derived
Whether to generate the project name and root directory as provided (as-provided
) or generate them composing their values and taking the configured layout into account (derived
).
false
Use pascal case file names.
true
Whether to enable tsconfig strict mode or not.
false
Whether or not to configure the ESLint parserOptions.project
option. We do not do this by default for lint performance reasons.
false
Whether to skip TypeScript type checking for SWC compiler.
false
Don't include the directory in the generated file name.
Add tags to the library (used for linting).
node
jsdom
, node
The test environment to use if unitTestRunner is set to jest or vitest.
jest
, vitest
, none
Test runner to use for unit tests.
project
workspace
, project
, npm-scripts
Determines whether the project's executors should be configured in workspace.json
, project.json
or as npm scripts.
false
Skip formatting files.
false
Do not add dependencies to package.json
.
false
Do not update tsconfig.json for development experience.
true
Generate a buildable library.
Use the bundler
option for greater control (swc, tsc, rollup, vite, esbuild, none).
tsc
tsc
, swc
The compiler used by the build and test targets
Use the bundler
option for greater control (swc, tsc, rollup, vite, esbuild, none).