{"id":20741745,"url":"https://github.com/getlarge/nx-node-sea","last_synced_at":"2025-07-18T10:07:57.089Z","repository":{"id":260168103,"uuid":"880495906","full_name":"getlarge/nx-node-sea","owner":"getlarge","description":"Nx plugin that provides integration with Node.js Single Executable Applications (SEA).","archived":false,"fork":false,"pushed_at":"2025-03-10T20:45:54.000Z","size":172,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-11T02:49:53.880Z","etag":null,"topics":["nodejs","nx","nx-plugin","plugin","single-executable"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getlarge.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2024-10-29T20:39:15.000Z","updated_at":"2025-05-02T18:21:21.000Z","dependencies_parsed_at":"2025-06-11T02:39:04.703Z","dependency_job_id":"680a6245-5dea-41ce-9704-78c1c4c65cab","html_url":"https://github.com/getlarge/nx-node-sea","commit_stats":null,"previous_names":["getlarge/nx-node-sea"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/getlarge/nx-node-sea","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getlarge%2Fnx-node-sea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getlarge%2Fnx-node-sea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getlarge%2Fnx-node-sea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getlarge%2Fnx-node-sea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getlarge","download_url":"https://codeload.github.com/getlarge/nx-node-sea/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getlarge%2Fnx-node-sea/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265738509,"owners_count":23820165,"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":["nodejs","nx","nx-plugin","plugin","single-executable"],"created_at":"2024-11-17T06:42:54.319Z","updated_at":"2025-07-18T10:07:57.060Z","avatar_url":"https://github.com/getlarge.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CI](https://github.com/getlarge/nx-node-sea/actions/workflows/ci.yml/badge.svg)](https://github.com/getlarge/nx-node-sea/actions/workflows/ci.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=getlarge_nx-node-sea\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=getlarge_nx-node-sea)\n[![npm](https://img.shields.io/npm/v/@getlarge/nx-node-sea.svg?style=flat)](https://npmjs.org/package/@getlarge/nx-node-sea)\n\n# @getlarge/nx-node-sea\n\nA plugin for [Nx](https://nx.dev) that provides integration with [Node.js Single Executable Applications (SEA)](https://nodejs.org/api/single-executable-applications.html).\n\n## Overview\n\nThis plugin helps you create Node.js Single Executable Applications (SEA) within your Nx workspace. It automates the process of generating SEA preparation blobs and creating standalone executables that bundle your Node.js application.\n\n## Requirements\n\n- Node.js 20 or higher (SEA feature requirement)\n- Nx 20.0.6 or higher\n\n## Installation\n\n```bash\nnpm install --save-dev @getlarge/nx-node-sea\n```\n\n## Usage\n\n### 1. Create a sea-config.json file\n\nCreate a `sea-config.json` file in your project's root directory:\n\n```json\n{\n  \"main\": \"dist/your-app/main.js\",\n  \"output\": \"dist/your-app/main.blob\",\n  \"disableExperimentalSEAWarning\": false,\n  \"useSnapshot\": false,\n  \"useCodeCache\": false\n}\n```\n\n### 2. Configure the plugin in nx.json\n\nAdd the plugin configuration to your `nx.json` file:\n\n```json\n{\n  \"plugins\": [\n    {\n      \"plugin\": \"@getlarge/nx-node-sea\",\n      \"options\": {\n        \"seaTargetName\": \"sea-build\",\n        \"buildTarget\": \"build\"\n      }\n    }\n  ]\n}\n```\n\n\u003e **Note:** The `buildTarget` option specifies the target that will be used to build your application before creating the SEA. The default value is `\"build\"`.\n\n### 3. Build your SEA\n\n```bash\nnx run your-app:sea-build\n```\n\nThis will:\n\n1. Build your application using the specified build target\n2. Generate a SEA preparation blob\n3. Create a standalone executable\n\n## Configuration Options\n\n### Plugin Options\n\n| Option          | Description                                                  | Default       |\n| --------------- | ------------------------------------------------------------ | ------------- |\n| `buildTarget`   | The target to build your application before creating the SEA | `\"build\"`     |\n| `seaTargetName` | The name of the target that will be created to build the SEA | `\"sea-build\"` |\n\n### SEA Config Options\n\n| Option                          | Description                                          | Required |\n| ------------------------------- | ---------------------------------------------------- | -------- |\n| `main`                          | Path to the main JavaScript file of your application | Yes      |\n| `output`                        | Path where the SEA blob will be generated            | Yes      |\n| `disableExperimentalSEAWarning` | Disable warnings about experimental feature          | No       |\n| `useSnapshot`                   | Use V8 snapshot for faster startup                   | No       |\n| `useCodeCache`                  | Use code cache for faster startup                    | No       |\n| `assets`                        | Record of assets to include in the blob              | No       |\n\n## Platform Support\n\nThe plugin automatically handles platform-specific differences for:\n\n- Linux\n- macOS (includes code signing)\n- Windows\n\n## Learn More\n\n- [Node.js Single Executable Applications](https://nodejs.org/api/single-executable-applications.html)\n- [Nx Tasks Pipeline](https://nx.dev/concepts/task-pipeline-configuration#what-is-a-task-pipeline)\n- [Nx Inferred Tasks](https://nx.dev/concepts/inferred-taskshttps://nx.dev/concepts/inferred-tasks)\n- [Postject](https://github.com/nodejs/postject) - Used for injecting the blob into the executable\n\n## Example Project Structure\n\n```\nmy-app/\n├── sea-config.json\n├── project.json\n└── src/\n    └── main.ts\n```\n\nThe plugin will create a standalone executable in the directory specified in `sea-config.json` (`output`).\n\nOn macOS and Linux, the binary will be named `node`. On Windows, it will be named `node.exe`.\n\nYou can find a complete working example in the [node-sea-demo repository](https://github.com/getlarge/node-sea-demo).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetlarge%2Fnx-node-sea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetlarge%2Fnx-node-sea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetlarge%2Fnx-node-sea/lists"}