8 releases
| new 0.2.2 | Nov 29, 2025 |
|---|---|
| 0.2.1 | Jul 28, 2025 |
| 0.1.0 | Jul 26, 2025 |
| 0.0.5 | Jul 26, 2025 |
#85 in Operating systems
747 downloads per month
140KB
3.5K
SLoC
Banderole
Create cross-platform single-executables for Node.js projects. Windows is not supported.
Banderole bundles your Node.js app, all dependencies, and a portable Node binary into a single native executable. On first launch, it unpacks to a cache directory for fast subsequent executions.
Unlike Node.js SEA or pkg, banderole handles complex projects with dynamic imports and non-JavaScript files without requiring patches, but since it includes all dependencies by default, it has significantly larger filesize.
Requirements
Banderole requires the Rust toolchain to be installed on your system to build portable executables.
Installation
cargo install banderole
Usage
# Bundle a project using the project name
banderole bundle /path/to/project
# Bundle with custom output path
banderole bundle /path/to/project --output /path/to/output/executable
# Bundle with custom name
banderole bundle /path/to/project --name my-app
# Bundle with both custom output and name
banderole bundle /path/to/project --output /path/to/my-app --name my-app
Feature List
- Support Linux, MacOS, and Windows for both x64 and arm64 architectures.
- Support custom node.js version based on project's
.nvmrcand.node-version - Support TypeScript projects with automatic detection of compiled output directories
- Support workspaces (only pnpm workspaces tested)
- Only the executable has permissions to read and execute bundled files
License
MIT
Dependencies
~21–40MB
~595K SLoC