inspector: build.mjs resolves paths with URL#pathname, fails ENOENT (F:\\F:\\...) and aborts bun run build on Windows
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 88/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript, node.js, typescript
- Domaine
- build-system, tooling
Piste de recherche
Lisez packages/inspector/build.mjs et comparez son helper de chemins aux exemples du dépôt mentionnés dans l’issue. Reproduisez le problème avec bun run build sous Windows, puis confirmez que la compilation du paquet réussit après que le helper utilise fileURLToPath. La tâche est terminée lorsque le préfixe de lecteur en double a disparu et que la compilation à la racine peut continuer au-delà du paquet inspector.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- TypeScript
- Étoiles
- 54.1k
- Forks
- 4.9k
- Merge moyen
- 1 j 10 h
- PR mergées (30 j)
- 711
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de heygen-com/hyperframes
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
heygen-com/hyperframes#6203 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
heygen-com/hyperframes#6157 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
format.md:66 host-id rule is ambiguous for multi-mount sub-compositions; scoped selector silently yields static framesPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
heygen-com/hyperframes#6139 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 Une demi-journée Accessibilité débutants 62/100
heygen-com/hyperframes#6138 ·
Les mainteneurs répondent en général sous 1 jour
-
docs: clip window is inclusive in data-attributes.md but [start, start+duration) in router Contract 1Peut-être pris @Mittalnew l’a pris il y a 1 jour. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
heygen-com/hyperframes#6136 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de heygen-com/hyperframes
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
farion1231/cc-switch#8829 ·
Les mainteneurs répondent en général sous 1 jour
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverOuvertedoc-audit enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100