Enable Typescript Batch Mode
The @nx/js:tsc
batch implementation was introduced in Nx 16.6.0.
If you're using the @nx/js:tsc
to build your projects, you can opt-in to use its batch implementation. The batch implementation uses the TypeScript APIs for incremental builds and batches the execution of the tasks into a single process. This results in a much faster build time when compared to the default implementation (the bigger the task graph to run, the more the performance improvements).
Executing tasks in batch mode is an experimental feature.
Building a project with the @nx/js:tsc
executor in batch mode requires all dependent projects (excluding implicit dependencies) to be buildable and built using the @nx/js:tsc
executor.
To run your builds using the batch implementation, pass in --batch
flag:
โฏ
nx build my-project --batch
For optimal performance, you could set the clean
option to false
. Otherwise, the executor cleans the output folder before running the build, which results in the loss of the .tsbuildinfo
file and, consequently, the loss of important optimizations performed by TypeScript. This is not a requirement. Even if the clean
option is not set to false
there are other important optimizations that are performed by the batch implementation.
1{
2 "build": {
3 "executor": "@nx/js:tsc",
4 "options": {
5 "outputPath": "dist/libs/ts-lib",
6 "main": "libs/ts-lib/src/index.ts",
7 "tsConfig": "libs/ts-lib/tsconfig.lib.json",
8 "assets": ["libs/ts-lib/*.md"],
9 "clean": false
10 }
11 }
12}
13
You can get a sense of the performance improvements over using the @nx/js:tsc
default implementation in the tsc batch mode benchmark.