{"id":25050950,"url":"https://github.com/angablue/exe","last_synced_at":"2025-04-06T03:07:07.185Z","repository":{"id":57097654,"uuid":"445032621","full_name":"AngaBlue/exe","owner":"AngaBlue","description":"Build a portable binary for Windows systems using Node's SEA","archived":false,"fork":false,"pushed_at":"2024-12-21T12:11:29.000Z","size":310,"stargazers_count":64,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-30T02:03:45.976Z","etag":null,"topics":["binary","bundler","executable","javascript","nodejs","typescript","windows"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@angablue/exe","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AngaBlue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-06T03:51:49.000Z","updated_at":"2025-03-18T09:17:09.000Z","dependencies_parsed_at":"2024-05-01T14:57:43.825Z","dependency_job_id":"f456bad4-a1ae-4fd2-a47f-9a23c5727f9d","html_url":"https://github.com/AngaBlue/exe","commit_stats":{"total_commits":34,"total_committers":1,"mean_commits":34.0,"dds":0.0,"last_synced_commit":"8e3a28cd9c6eaee4f28fa1c6fed45aa45dc6f217"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngaBlue%2Fexe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngaBlue%2Fexe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngaBlue%2Fexe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngaBlue%2Fexe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AngaBlue","download_url":"https://codeload.github.com/AngaBlue/exe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247427006,"owners_count":20937201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary","bundler","executable","javascript","nodejs","typescript","windows"],"created_at":"2025-02-06T09:18:40.315Z","updated_at":"2025-04-06T03:07:07.169Z","avatar_url":"https://github.com/AngaBlue.png","language":"TypeScript","readme":"\u003ch1 align=\"center\"\u003eNode.js Windows Executable\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.npmjs.com/package/@angablue/exe\" target=\"_blank\"\u003e\n  \u003cimg alt=\"GitHub tag (latest by date)\" src=\"https://img.shields.io/github/v/tag/AngaBlue/exe?label=Version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/AngaBlue/exe/blob/main/LICENSE\" target=\"_blank\"\u003e\n    \u003cimg alt=\"License: LGPL--3.0--or--later\" src=\"https://img.shields.io/github/license/AngaBlue/exe?color=green\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nBuild a portable binary for Windows systems using Node's [SEA](https://nodejs.org/api/single-executable-applications.html). This project serves to and aid in automating bundling your source code with [`@vercel/ncc`](https://github.com/vercel/ncc) and modifying the executable properties post build with [`resedit-js`](https://www.npmjs.com/package/resedit).\n\n### 🏠 [Homepage](https://github.com/AngaBlue/exe)\n\n## Install\n\nInstall this package and save to `devDependencies` using your package manager of choice.\n\n```sh\nnpm i -D @angablue/exe\n```\n\n⚠️**Warning**⚠️: This package is only supported on Windows systems running Node `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\n\n```sh\nnpm i -D @angablue/exe@2.1.3\n```\n\n*Please note that the older version of this package is no longer maintained.  Refer to the [previous documentation here](https://github.com/AngaBlue/exe/blob/b0ddec947e948bd4172b2662296ccb30356e0de0/README.md).*\n\n## CLI Usage\n\nPoint to a JSON configuration file (default `exe.json`) to build your executable:\n\n```sh\nnpx exe exe.json\n```\n\n### Configuration File\n\nCreate a JSON configuration file (`exe.json`) with the following options:\n\n```json\n{\n    \"entry\": \"index.js\",\n    \"out\": \"My Cool App.exe\"\n}\n```\n`@angablue/exe` has first-class TypeScript support.  You can use it in your TypeScript projects without any additional configuration by specifying your TypeScript entry file (such as `index.ts`).\n\nOptionally, you can specify more arguments and completely customise the resultant executable:\n\n```json\n{\n    \"entry\": \"index.js\",\n    \"out\": \"My Cool App.exe\",\n    \"skipBundle\": false,\n    \"version\": \"{package:version}\",\n    \"icon\": \"icon.ico\",\n    \"executionLevel\": \"asInvoker\",\n    \"properties\": {\n        \"FileDescription\": \"{package:description}\",\n        \"ProductName\": \"My Cool App\",\n        \"LegalCopyright\": \"Copyright {package:author.name}\",\n        \"OriginalFilename\": \"{package:name}\"\n    }\n}\n```\n\n## API Usage\nIf you prefer to use this package programmatically, you can import this module into your Node.js script:\n\n```js\n// build.js\nconst exe = require(\"@angablue/exe\");\n\nconst build = exe({\n  entry: \"./index.js\",\n  out: \"./build/My Cool App.exe\",\n});\n\nbuild.then(() =\u003e console.log(\"Build completed!\"));\n```\n\n## Example Usage\n\nSpecify more arguments and completely customise the resultant executable.\n\n```js\n// build.js\nconst exe = require(\"@angablue/exe\");\n\nconst build = exe({\n  entry: \"./index.js\",\n  out: \"./build/My Cool App.exe\",\n  skipBundle: false,\n  version: \"2.4.2\",\n  icon: \"./assets/icon.ico\", // Application icons must be in .ico format\n  executionLevel: \"asInvoker\",\n  properties: {\n    FileDescription: \"My Cool App\",\n    ProductName: \"My Cool App\",\n    LegalCopyright: \"AngaBlue https://anga.blue\",\n    OriginalFilename: \"My Cool App.exe\",\n  },\n});\n\nbuild.then(() =\u003e console.log(\"Build completed!\"));\n```\n\n## Configuration Options\n\n| Option           | Description                                                                   | Required | Default Value      | Example Value                             | Possible Values                                                                                                       |\n| ---------------- | ----------------------------------------------------------------------------- | -------- | ------------------ | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |\n| `entry`          | Path to the entry file of the application.                                    | Yes      | N/A                | `'./index.js'`                            | Any valid file path to a `.js`/`.ts` script.                                                                          |\n| `out`            | Path for the output executable file.                                          | Yes      | N/A                | `'./build/My Cool App.exe'`               | Any valid file path (ending with `.exe`).                                                                             |\n| `skipBundle`     | Skip the bundling process and use provided entry file as is.                  | No       | `false`            | `true`                                    | `Boolean`                                                                                                             |\n| `version`        | Version of the application.                                                   | No       | None               | `'2.4.2'`                                 | Semantic version string. e.g. `major.minor.patch`                                                                     |\n| `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.                                                                                 |\n| `executionLevel` | Execution level for the application.                                          | No       | `'asInvoker'`      | `'asInvoker'`                             | `asInvoker`, `highestAvailable`, `requireAdministrator`                                                               |\n| `properties`     | Metadata for the executable file.                                             | No       | None               | `{ FileDescription: 'My Cool App', ... }` | Key-value pairs as shown in example.                                                                                  |\n\n### Note on `properties`:\n\n- `FileDescription`: Description of the executable.\n- `ProductName`: Name of the product.\n- `LegalCopyright`: Copyright details with the URL.\n- `OriginalFilename`: Name of the original file.\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nCopyright © [AngaBlue](https://github.com/AngaBlue).\u003cbr /\u003e\nThis project is [LGPL--3.0--or--later](https://github.com/AngaBlue/exe/blob/main/LICENSE) licensed.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangablue%2Fexe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fangablue%2Fexe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangablue%2Fexe/lists"}