@nx/js

The JS plugin contains executors and generators that are useful for JavaScript/TypeScript projects in an Nx workspace.

Setting Up JS

Installation

In any Nx workspace, you can install @nx/js by running the following commands if @nx/js package is not installed:

ts Preset

When initializing a new Nx workspace, specifying --preset=ts will generate a workspace with @nx/js pre-installed.

npx create-nx-workspace my-org --preset=ts

Create Libraries

You can add a new JS/TS library with the following command:

Build

You can build libraries that are generated with a bundler specified.

nx g @nx/js:lib my-buildable-lib --bundler=rollup
Nx 15 and lower use @nrwl/ instead of @nx/

Generating a library with --bundler specified will add a build target to the library's project.json file allows the library to be built.

nx build my-buildable-lib

Test

You can test a library with the following command:

nx test my-lib

Lint

You can lint a library with the following command:

nx lint my-lib

Compiler

By default, @nx/js uses TypeScript Compiler (TSC), via @nx/js:tsc executor, to compile your libraries. Optionally, you can switch tsc out for a different compiler with --compiler flag when executing the generators.

Currently, @nx/js supports the following compilers:

SWC

  • Create a buildable library with swc
nx g @nx/js:lib my-swc-lib --bundler=swc
Nx 15 and lower use @nrwl/ instead of @nx/
  • Convert a tsc library to use swc
nx g @nx/js:convert-to-swc my-buildable-lib
Nx 15 and lower use @nrwl/ instead of @nx/

Now the build command will use @nx/js:swc executor to compile your libraries.

The first time you generate a swc library or convert a tsc library over to swc, @nx/js will install the necessary dependencies to use swc.

Package reference

Here is a list of all the executors and generators available from this package.

Guides

Executors

  • tsc

    Build a project using TypeScript.

  • swc

    Build a project using SWC.

  • node

    Execute a Node application.

Generators

  • library

    Create a library

  • initInternal

    Initialize a TS/JS workspace.

  • convert-to-swc

    Convert a TypeScript library to compile with SWC.