@anatine/esbuildnx
Version:
Esbuild plugin for Nx
66 lines (46 loc) • 1.9 kB
Markdown
# esbuildnx Plugin
The esbuild Plugin contains generators and executors for compiling a node app using [esbuild](https://esbuild.github.io/)
## Installing the esbuildnx Plugin
Installing the esbuildnx plugin to a workspace can be done with the following:
```shell
#yarn
yarn add -D @anatine/esbuildnx
```
```shell
#npm
npm install -D @anatine/esbuildnx
```
## Application Setup
This plugin is designed to be used with an existing Node application. Target an existing node app and run the setup.
```shell
nx generate @anatine/esbuildnx:setup <node-app>
```
If you want to replace the existing build command with esbuild, use the `--override` flag.
```shell
nx generate @anatine/esbuildnx:setup <node-app> --override
```
## Commands
### esbuild
After a node project is setup, execute a build with the command:
```shell
nx esbuild <node-app>
```
#### esbuild options: `external: [ ... ]`
Not every module can go through treeshaking and packing.
Esbuild provides an option called `external` that contains an array of package name strings.
This plugin will take all dependencies in the `package.json`,
and merge them with any external files defined in the app `esbuild.json` file.
These node_modules will be copied into the dist directory at build time and will not be packed into the single .js file.
The entire compiled dist folder can be deployed into a docker container with minimum node_modules.
One of the goals of this plugin will be to grow and maintain a list of npm modules that can't be bundled by esbuild
and automatically add them to the external file list.
#### watch
The `--watch` flag is also available. In watch mode, the `node_module` files are not copied over.
```shell
nx esbuild <node-app> --watch
```
### Overridden build
If the setup was run with the `--overwrite` flag, build your node app as normal within the nx environment.
```shell
nx build <node-app>
```