Build a portable binary for Windows systems using Node's SEA. This project serves to and aid in automating bundling your source code with @vercel/ncc
and modifying the executable properties post build with resedit-js
.
🏠 Homepage
Install this package and save to devDependencies
using your package manager of choice.
npm i -D @angablue/exe
v20.0.0
or newer. For older versions of Node (v12.0.0
or newer), please use the version v2.1.3
of this package
npm i -D @angablue/exe@2.1.3
Please note that the older version of this package is no longer maintained. Refer to the previous documentation here.
// build.js
const exe = require("@angablue/exe");
const build = exe({
entry: "./index.js",
out: "./build/My Cool App.exe",
});
build.then(() => console.log("Build completed!"));
@angablue/exe
has first-class TypeScript support. You can use it in your TypeScript projects without any additional configuration.
Specify more arguments and completely customise the resultant executable.
// build.js
const exe = require("@angablue/exe");
const build = exe({
entry: "./index.js",
out: "./build/My Cool App.exe",
version: "2.4.2",
icon: "./assets/icon.ico", // Application icons must be in .ico format
executionLevel: "asInvoker",
properties: {
FileDescription: "My Cool App",
ProductName: "My Cool App",
LegalCopyright: "AngaBlue https://anga.blue",
OriginalFilename: "My Cool App.exe",
},
});
build.then(() => console.log("Build completed!"));
Option | Description | Required | Default Value | Example Value | Possible Values |
---|---|---|---|---|---|
entry |
Path to the entry file of the application. | Yes | N/A | './index.js' |
Any valid file path to a .js /.ts script. |
out |
Path for the output executable file. | Yes | N/A | './build/My Cool App.exe' |
Any valid file path (ending with .exe ). |
version |
Version of the application. | No | None | '2.4.2' |
Semantic version string. e.g. major.minor.patch |
icon |
Path to the application's icon in .ico format. | No | Node.js icon | './assets/icon.ico' |
Any valid file path to a .ico icon. |
executionLevel |
Execution level for the application. | No | 'asInvoker' |
'asInvoker' |
asInvoker , highestAvailable , requireAdministrator |
properties |
Metadata for the executable file. | No | None | { FileDescription: 'My Cool App', ... } |
Key-value pairs as shown in example. |
FileDescription
: Description of the executable.ProductName
: Name of the product.LegalCopyright
: Copyright details with the URL.OriginalFilename
: Name of the original file.
Give a ⭐️ if this project helped you!
Copyright © AngaBlue.
This project is LGPL--3.0--or--later licensed.