Building Standalone Executables With Node.js

Tony Pujals - Sep 24 - - Dev Community

Node.js has experimental support for building a single executable application, or SEA, which is what the team calls a standalone executable that can be distributed to supported platforms.

The way the feature works is that a single blob is injected into the node binary for a supported platform. This single blob can be a JavaScript file, including multi-file JavaScript source that has been bundled with a tool like Webpack. If the blob is present, then the node binary will execute the script in the blob.

The recipe for building a SEA is spelled out in the docs.

Unfortunately, the developer experience is not yet on par with Deno or Bun.js. I wrote a build script to streamline building a SEA for Linux and Darwin targets and smooth out the experience. I also took a stab at the Windows target, although it's not tested.

The rest of the details are on my personal blog here:
https://codesnip.sh/posts/building-standalone-nodejs-executables

The script demonstrates using Webpack for bundling. I plan to also add esbuild and swc support, but you can just use the project as a starting point for your own project.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .