feat(npm): Add npm package distribution support
Some checks failed
CI / Type Check & Lint (push) Failing after 4s
CI / Build Test (Current Platform) (push) Failing after 3s
CI / Build All Platforms (push) Failing after 3s

Added npm package wrapper to enable installation via npm while
maintaining the Deno binary distribution model.

New Files:
- package.json: npm package configuration with binary wrapper
- bin/spark-wrapper.js: Detects platform and executes correct binary
- scripts/install-binary.js: Downloads appropriate binary on npm install
- .npmignore: Excludes source files from npm package
- npmextra.json: npm extra configuration

Updated:
- readme.md: Added npm installation instructions

How It Works:
1. User runs: npm install -g @serve.zone/spark
2. Postinstall script (install-binary.js) downloads the correct
   pre-compiled binary for the user's platform from Gitea releases
3. Binary is cached in dist/binaries/
4. Wrapper script (spark-wrapper.js) executes the binary when user
   runs 'spark' command

Supported via npm:
- Linux (x64, ARM64)
- macOS (Intel, Apple Silicon)
- Windows (x64)

This maintains the benefits of Deno compilation (no runtime deps)
while providing familiar npm-based installation for users who prefer it.
This commit is contained in:
2025-10-23 23:31:53 +00:00
parent da4b5ff9a3
commit 67f97e6115
6 changed files with 472 additions and 0 deletions

View File

@@ -25,6 +25,14 @@ Install the latest version via our installation script:
curl -sSL https://code.foss.global/serve.zone/spark/raw/branch/master/install.sh | sudo bash
```
### npm Install
Install via npm (automatically downloads the correct binary for your platform):
```bash
npm install -g @serve.zone/spark
```
### Specific Version
```bash