# exeup

> Exeup: Pack up and bundle your Node.js project into a single .exe file for easy distribution and hassle-free execution on Windows!

Latest version **0.0.4** (published 2025-02-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install exeup
pnpm add exeup
yarn add exeup
bun add exeup
```

Provides the command `exeup`.

## Health

**Score 25/100 (F)** — status: maintenance-mode.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.4 |
| Published | 2025-02-11 |
| First published | 2025-02-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=20.0.0 |
| Dependencies | 5 |
| Unpacked size | 306 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Sectly |
| Maintainers | sectly |
| Keywords | exe, exeup, build, binary, bundle, executable, windows |

## Links

- npm: https://www.npmjs.com/package/exeup
- Repository: https://github.com/Sectly/Exeup
- Homepage: https://github.com/Sectly/Exeup#readme
- Issues: https://github.com/Sectly/Exeup/issues
- npm.io page: https://npm.io/package/exeup

## Dependencies (5)

- [resedit](https://npm.io/package/resedit.md) ^2.0.3
- [postject](https://npm.io/package/postject.md) ^1.0.0-alpha.6
- [signtool](https://npm.io/package/signtool.md) ^1.0.0
- [png-to-ico](https://npm.io/package/png-to-ico.md) ^2.1.8
- [@vercel/ncc](https://npm.io/package/@vercel/ncc.md) ^0.38.3

## Alternatives

- [raw-loader](https://npm.io/package/raw-loader.md) — 4.3M weekly downloads
- [plop](https://npm.io/package/plop.md) — 1.4M weekly downloads
- [webpack-deadcode-plugin](https://npm.io/package/webpack-deadcode-plugin.md) — 80.3K weekly downloads
- [@storybook/preact-vite](https://npm.io/package/@storybook/preact-vite.md) — 54.2K weekly downloads
- [vite-plugin-transform](https://npm.io/package/vite-plugin-transform.md) — 2.4K weekly downloads

## Recent versions

- 0.0.4 (latest) — 2025-02-11
- 0.0.3 — 2025-02-11
- 0.0.2 — 2025-02-11
- 0.0.1 — 2025-02-11

## README

# Exeup

Exeup: Pack up and bundle your Node.js project into a single .exe file for easy distribution and hassle-free execution on Windows!

---

## 📌 Table of Contents

- [Installation](#installation)
- [Usage](#usage)
  - [Using the CLI](#using-the-cli)
  - [Using the npm Package](#using-the-npm-package)
- [Configuration (CLI Only)](#configuration-cli-only)
- [Options](#options)
- [License](#license)

---

## 🚀 Installation

### Install as a CLI Tool

To install Exeup globally, run:

```sh
npm install -g exeup
```

### Install as a Developer Dependency

To use Exeup within a Node.js project:

```sh
npm install -D exeup
```

---

## 🔧 Usage

### Using the CLI

Once installed, you can use the `exeup` command to package your Node.js project into an executable file.

#### Initialize Configuration

Before building, configure Exeup by running:

```sh
exeup config
```

This will prompt you for essential configuration details, such as the entry file, output path, version, and execution level.

#### Build an Executable

To create an executable from your project:

```sh
exeup build
```

#### Check Version

To check the installed version of Exeup:

```sh
exeup version
```

#### View Help

For a list of available commands:

```sh
exeup help
```

---

### Using the npm Package

Exeup can be used programmatically within your Node.js project.

#### Example Usage

```javascript
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);
```

---

## ⚙️ Configuration (CLI Only)

The CLI tool relies on a configuration file (`exeup.config.json`). You can generate this file using:

```sh
exeup config
```

Example `exeup.config.json`:

```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"
    }
}
```

---

## ⚡ Options

| 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.                           |

---

## 📜 License

Exeup is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.

---

## 📂 Source Code

Find the source code on GitHub: [Sectly/Exeup](https://github.com/Sectly/Exeup)

---
_Source: https://npm.io/package/exeup · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
