fix(dist): ship a self-contained bundle so it installs from the registry
CI / publish (push) Has been cancelled
CI / build (push) Has been cancelled

The unscoped package lives on the Gitea npm registry but its deps span two
registries (`@punktfunk/host` on Gitea, `effect`/`undici` on npmjs). Installing
by name with `--registry <gitea>` sets the default registry for the whole tree,
so `effect` 404s (Gitea doesn't proxy npm), and an unscoped name can't be
scope-mapped. Fix: bundle the backend into ONE self-contained `dist/index.js`
(+ `dist/cli.js`) via `bun build --target=bun` with `@punktfunk/host` + `effect`
inlined — mirroring the scripting runner. The published package now has zero
runtime dependencies and installs with a single `--registry` flag.

- build → `bun build src/{index,cli}.ts --target=bun --outdir dist --external undici`
- @punktfunk/host + effect → devDependencies (bundled, not resolved at install)
- resolveUiDir(): walk to the SPA dir so staticDir works in the bundled
  (dist/index.js) and unbundled (dist/server/index.js) layouts
- version 0.1.0 → 0.1.1

Verified: the bundle loads + scans/detects/previews with NO node_modules present.
This commit is contained in:
2026-07-18 11:18:38 +02:00
parent 3a6c80558d
commit aee3c194af
5 changed files with 39 additions and 18 deletions
+5 -7
View File
@@ -1,6 +1,6 @@
{
"name": "punktfunk-plugin-rom-manager",
"version": "0.1.0",
"version": "0.1.1",
"private": false,
"type": "module",
"description": "punktfunk plugin: scans ROM directories, maps them to emulators, and reconciles them into the host game library as a provider — with a console-hosted web UI.",
@@ -20,7 +20,6 @@
],
"main": "./dist/index.js",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"bin": {
"punktfunk-plugin-rom-manager": "./dist/cli.js"
},
@@ -33,7 +32,7 @@
"scripts": {
"typecheck": "tsc --noEmit",
"test": "bun test",
"build": "tsc -p tsconfig.build.json",
"build": "rm -rf dist && bun build src/index.ts src/cli.ts --target=bun --outdir dist --external undici",
"build:ui": "cd ui && bun install --silent && bun run build",
"build:all": "bun run build && bun run build:ui",
"sync": "bun src/cli.ts sync",
@@ -41,13 +40,12 @@
"detect": "bun src/cli.ts detect",
"prepublishOnly": "bun run build:all"
},
"dependencies": {
"@punktfunk/host": "^0.1.0",
"effect": "^4.0.0-beta.98"
},
"dependencies": {},
"devDependencies": {
"@biomejs/biome": "^2.5.2",
"@punktfunk/host": "^0.1.0",
"@types/bun": "^1.3.0",
"effect": "^4.0.0-beta.98",
"typescript": "^5.9.3"
}
}