中文文档 | English Documentation
A Node.js tool for configuring Windows PKG package generated exe file icons and detailed information. This project is a fork of AngaBlue/exe version 2.0, with updates and improvements.
🏠 Homepage
This version introduces several breaking changes compared to the 1.X series:
- Repository: New repository at https://github.com/PromiseAll/pkg-exe-build
- PKG Dependency: Updated to use
@yao-pkg/pkginstead of the original pkg package - Build System: Now uses tsup for building instead of the previous build system
- Module System: Full ES Module support with both ESM and CommonJS exports
- CLI Command: The package now provides a short CLI command alias
pkgefor easier usage
Install this package and save to devDependencies using your package manager of choice.
npm i -D pkg-exe-buildYou can also use the command line interface to build executables. The package provides a short CLI command alias pkge for convenience:
npx pkge -e ./index.js -o ./build/My Cool App.exe| Option | Description | Required | Default Value | Example Value |
|---|---|---|---|---|
-e, --entry |
Path to the entry file of the application. | Yes | N/A | ./index.js |
-o, --out |
Path for the output executable file. | Yes | N/A | ./build/My Cool App.exe |
-p, --pkg |
Extra arguments for the pkg package. | No | [] |
-C GZip |
-t, --target |
Target node version and architecture. | No | latest-win-x64 |
latest-win-x64 |
--app-version |
Version of the application. | No | None | 2.4.2 |
-i, --icon |
Path to the application's icon in .ico format. | No | Node.js icon | ./assets/icon.ico |
-l, --execution-level |
Execution level for the application. | No | asInvoker |
asInvoker |
--properties.FileDescription |
Description of the executable. | No | None | "My Cool App" |
--properties.ProductName |
Product name. | No | None | "My Cool App" |
--properties.LegalCopyright |
Copyright information. | No | None | "My Cool App © 2023" |
--properties.OriginalFilename |
Original filename. | No | None | "My Cool App.exe" |
Basic usage:
npx pkge -e ./index.js -o ./build/My Cool App.exeFull parameters:
npx pkge \
-e ./index.js \
-o ./build/My Cool App.exe \
-p -C GZip \
-t latest-win-x64 \
--app-version 2.4.2 \
-i ./assets/icon.ico \
-l asInvoker \
--properties.FileDescription "My Cool App" \
--properties.ProductName "My Cool App" \
--properties.LegalCopyright "My Cool App © 2023" \
--properties.OriginalFilename "My Cool App.exe"// build.js
import pkgBuild from "pkg-exe-build";
const build = pkgBuild({
entry: "./index.js",
out: "./build/My Cool App.exe",
});
build.then(() => console.log("Build completed!"));Or using CommonJS:
// build.js
const pkgBuild = require("pkg-exe-build");
const build = pkgBuild({
entry: "./index.js",
out: "./build/My Cool App.exe",
});
build.then(() => console.log("Build completed!"));Specify more arguments and completely customize the resultant executable.
// build.js
import pkgBuild from "pkg-exe-build";
const build = pkgBuild({
entry: "./index.js",
out: "./build/My Cool App.exe",
pkg: ["-C", "GZip"], // Specify extra pkg arguments
version: "2.4.2",
target: "latest-win-x64",
icon: "./assets/icon.ico", // Application icons must be in .ico format
executionLevel: "asInvoker",
properties: {
FileDescription: "My Cool App",
ProductName: "My Cool App",
LegalCopyright: "PromiseAll https://github.com/PromiseAll",
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. |
out |
Path for the output executable file. | Yes | N/A | './build/My Cool App.exe' |
Any valid file path. |
pkg |
Extra arguments for the pkg package. | No | [] |
['-C', 'GZip'] |
Array of pkg arguments. |
version |
Version of the application. | No | None | '2.4.2' |
Semantic version string. e.g. major.minor.patch |
target |
Target node version and architecture. | No | 'latest-win-x64' |
'latest-win-x64' |
Windows pkg target string. e.g. latest-win-x64, node18-windows-x64, etc. |
icon |
Path to the application's icon in .ico format. | No | Node.js icon | './assets/icon.ico' |
Any valid .ico file path. |
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.
To build the project:
npm run buildTo run tests:
npm testTo run CLI tests:
npm run test:cliGive a ⭐️ if this project helped you!
Copyright © PromiseAll.
This project is LGPL-3.0-or-later licensed.
This project is based on AngaBlue/exe version 2.0.