feat: Bun single-file executable distribution (#819)
* feat: add Bun single-file executable distribution - Add 7 platform packages for standalone CLI binaries - Add bin/platform.js for shared platform detection - Add bin/oh-my-opencode.js ESM wrapper - Add postinstall.mjs for binary verification - Add script/build-binaries.ts for cross-compilation - Update publish workflow for multi-package publishing - Add CI guard against @ast-grep/napi in CLI - Add unit tests for platform detection (12 tests) - Update README to remove Bun runtime requirement Platforms supported: - macOS ARM64 & x64 - Linux x64 & ARM64 (glibc) - Linux x64 & ARM64 (musl/Alpine) - Windows x64 Closes #816 * chore: remove unnecessary @ast-grep/napi CI check * chore: gitignore compiled platform binaries * fix: use require() instead of top-level await import() for Bun compile compatibility * refactor: use static ESM import for package.json instead of require()
This commit is contained in:
+17
-2
@@ -6,10 +6,12 @@
|
||||
"types": "dist/index.d.ts",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"oh-my-opencode": "./dist/cli/index.js"
|
||||
"oh-my-opencode": "./bin/oh-my-opencode.js"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
"dist",
|
||||
"bin",
|
||||
"postinstall.mjs"
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
@@ -20,8 +22,11 @@
|
||||
},
|
||||
"scripts": {
|
||||
"build": "bun build src/index.ts --outdir dist --target bun --format esm --external @ast-grep/napi && tsc --emitDeclarationOnly && bun build src/cli/index.ts --outdir dist/cli --target bun --format esm --external @ast-grep/napi && bun run build:schema",
|
||||
"build:all": "bun run build && bun run build:binaries",
|
||||
"build:binaries": "bun run script/build-binaries.ts",
|
||||
"build:schema": "bun run script/build-schema.ts",
|
||||
"clean": "rm -rf dist",
|
||||
"postinstall": "node postinstall.mjs",
|
||||
"prepublishOnly": "bun run clean && bun run build",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"test": "bun test"
|
||||
@@ -55,6 +60,7 @@
|
||||
"@opencode-ai/plugin": "^1.1.19",
|
||||
"@opencode-ai/sdk": "^1.1.19",
|
||||
"commander": "^14.0.2",
|
||||
"detect-libc": "^2.0.0",
|
||||
"hono": "^4.10.4",
|
||||
"js-yaml": "^4.1.1",
|
||||
"jsonc-parser": "^3.3.1",
|
||||
@@ -70,6 +76,15 @@
|
||||
"bun-types": "latest",
|
||||
"typescript": "^5.7.3"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"oh-my-opencode-darwin-arm64": "0.0.0",
|
||||
"oh-my-opencode-darwin-x64": "0.0.0",
|
||||
"oh-my-opencode-linux-arm64": "0.0.0",
|
||||
"oh-my-opencode-linux-arm64-musl": "0.0.0",
|
||||
"oh-my-opencode-linux-x64": "0.0.0",
|
||||
"oh-my-opencode-linux-x64-musl": "0.0.0",
|
||||
"oh-my-opencode-windows-x64": "0.0.0"
|
||||
},
|
||||
"trustedDependencies": [
|
||||
"@ast-grep/cli",
|
||||
"@ast-grep/napi",
|
||||
|
||||
Reference in New Issue
Block a user