inspector: build.mjs resolves paths with URL#pathname, fails ENOENT (F:\\F:\\...) and aborts bun run build on Windows
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Aptitud para principiantes
- 88/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, node.js, typescript
- Área
- build-system, tooling
Línea de trabajo
Lee packages/inspector/build.mjs y compara su helper de rutas con los ejemplos del repositorio mencionados en el issue. Reproduce el problema con bun run build en Windows y luego confirma que la compilación del paquete se completa correctamente después de que el helper use fileURLToPath. La tarea estará terminada cuando haya desaparecido el prefijo de unidad duplicado y la compilación raíz pueda continuar más allá del paquete inspector.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
bun run build fails on Windows in the new @hyperframes/inspector package:
@hyperframes/inspector build $ node build.mjs
Error: ENOENT: no such file or directory, open
'F:\F:\PINOKIO\Run\PINOKIO\api\HyperFrames-Studio.git\app\packages\inspector\package.json'
errno: -4058, code: 'ENOENT', syscall: 'open'
Exited with code 1
error: script "build" exited with code 1
Note the doubled drive prefix F:\F:\.
Root cause
packages/inspector/build.mjs:8:
const at = (path) => new URL(path, import.meta.url).pathname;
On Windows, URL#pathname for a file:///F:/... URL is /F:/... — a POSIX-style, drive-letter-in-path string. fs.readFileSync("/F:/...") resolves against the current drive (F:), producing F:\F:\..., which does not exist.
Everywhere else in the repo this is done correctly with fileURLToPath() (e.g. packages/producer/scripts/test-classification.mjs, packages/cli/scripts/build-copy.mjs, scripts/rewrite-relative-import-extensions.mjs), which yields F:\... as expected.
at() is used for readFileSync (line 9), all esbuild entryPoints/outfiles (lines 19–44), the tsc -p argument (line 49), copyFileSync (line 51) and rewriteRelativeImportExtensions (line 52) — so the whole script dies on the first read.
Impact
The root build script is an && chain:
... && bun run --filter '@hyperframes/{engine,producer,player,studio,shader-transitions,aws-lambda,gcp-cloud-run,sdk,inspector}' build && bun run --filter '@hyperframes/cli' build && ...
One failing member aborts the chain, so @hyperframes/cli and @hyperframes/sdk-playground never build either — bun run build is simply broken on Windows for any fresh clone.
Repro
Windows + Node:
git clone https://github.com/heygen-com/hyperframes.git
cd hyperframes
bun install
bun run build
(The failure is deterministic — no race, no network involved.)
Suggested fix
import { fileURLToPath } from "node:url";
const at = (path) => fileURLToPath(new URL(path, import.meta.url));
This matches the convention used by the rest of the repo and is a no-op on POSIX.
Environment
- OS: Windows 10/11, repo at
origin/main@b46ebedea - Node v24.18.0, bun via
bun run build - Discovered while a launcher script (
git clone+bun install+bun run build) reproduced it end to end
- Lenguaje dominante
- TypeScript
- Estrellas
- 54.1k
- Forks
- 4.9k
- Merge medio
- 9 h 46 min
- PR fusionados (30 d)
- 652
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de heygen-com/hyperframes
-
Player: speed button's accessible name doesn't include its visible textPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
heygen-com/hyperframes#6021 ·
Los mantenedores suelen responder en 1 día
-
product-launch-video: assemble-index.mjs is not idempotent — a second run drops every approved frame videoPosiblemente ocupada @Dante-dan la tomó hace 5 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
heygen-com/hyperframes#5733 ·
Los mantenedores suelen responder en 1 día
-
gsap_tween_tail counts GSAP's force3D and autoRound flags as propertiesPosiblemente ocupada @rudycelekli la tomó hace 5 días. Abiertobug triage/needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
heygen-com/hyperframes#5683 ·
Los mantenedores suelen responder en 1 día
-
Timeline: show a clip's full name when its label is cut offPosiblemente ocupada @DanielMcSheehy la tomó hace 3 días. Abiertodesktop-candidate difficulty/easy enhancement good first issue help wanted triage/ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
heygen-com/hyperframes#5582 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Studio: press ? to open the keyboard shortcuts panelQuizá libre de nuevo @B-Payal la tomó hace 7 días y no hay ningún pull request abierto. Abiertodesktop-candidate difficulty/easy enhancement good first issue help wanted triage/ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
heygen-com/hyperframes#5580 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de heygen-com/hyperframes
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 72/100
zts212653/clowder-ai#1678 ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Progressive-Victory/the-website#680 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100