Exeup: Pack up and bundle your Node.js project into a single .exe file for easy distribution and hassle-free execution on Windows!
To install Exeup globally, run:
npm install -g exeup
To use Exeup within a Node.js project:
npm install -D exeup
Once installed, you can use the exeup
command to package your Node.js project into an executable file.
Before building, configure Exeup by running:
exeup config
This will prompt you for essential configuration details, such as the entry file, output path, version, and execution level.
To create an executable from your project:
exeup build
To check the installed version of Exeup:
exeup version
For a list of available commands:
exeup help
Exeup can be used programmatically within your Node.js project.
const exeup = require('exeup');
const options = {
entry: './index.js',
out: './build/myapp.exe',
version: '1.0.0',
icon: './assets/icon.ico',
skipBundle: false,
executionLevel: 'asInvoker',
properties: {
FileDescription: 'My Application',
ProductName: 'MyApp',
LegalCopyright: 'My Company',
OriginalFilename: 'myapp.exe',
}
};
exeup(options, (progressData) => {
console.log(`${progressData.progress}% - ${progressData.message}`);
if (progressData.done) {
console.log('Executable successfully created!');
}
}).catch(console.error);
The CLI tool relies on a configuration file (exeup.config.json
). You can generate this file using:
exeup config
Example exeup.config.json
:
{
"entry": "./index.js",
"out": "./build/myapp.exe",
"version": "1.0.0",
"icon": "./assets/icon.ico",
"skipBundle": false,
"executionLevel": "asInvoker",
"properties": {
"FileDescription": "My Application",
"ProductName": "MyApp",
"LegalCopyright": "My Company",
"OriginalFilename": "myapp.exe"
}
}
Option | Type | CLI Only | Description |
---|---|---|---|
entry |
String | No | The entry file of your application. |
out |
String | No | The output file path for the generated executable. |
version |
String | No | The application version number. |
icon |
String | No | The path to an .ico or .png file for the application icon. |
skipBundle |
Boolean | No | If true , skips the bundling process. |
executionLevel |
String | No | Sets execution privileges (asInvoker , highestAvailable , or requireAdministrator ). |
properties |
Object | No | Custom metadata (e.g., FileDescription , ProductName ). |
exeup.config.json |
File | Yes | The CLI configuration file. Not required when using Exeup as a package. |
Exeup is licensed under the MIT License. See the LICENSE file for more details.
Find the source code on GitHub: Sectly/Exeup