Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

inspector: build.mjs resolves paths with URL#pathname, fails ENOENT (F:\\F:\\...) and aborts bun run build on Windows

Ouverte Adaptée aux débutants
#5,863 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@shuaiyafei y travaille déjà.

Depuis le 21/10/2026.

  • #6010 par @shuaiyafei — ouverte

É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

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

triage/ready

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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de heygen-com/hyperframes

Toutes les issues de heygen-com/hyperframes

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.