esbuildnx Plugin
The esbuild Plugin contains generators and executors for compiling a node app using esbuild
Installing the esbuildnx Plugin
Installing the esbuildnx plugin to a workspace can be done with the following:
#yarn
yarn add -D @anatine/esbuildnx
#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.
nx generate @anatine/esbuildnx:setup <node-app>
If you want to replace the existing build command with esbuild, use the --override
flag.
nx generate @anatine/esbuildnx:setup <node-app> --override
Commands
esbuild
After a node project is setup, execute a build with the command:
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.
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.
nx build <node-app>