Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

render: --variables-file (and --variables <path>) fails with "io.readFile is not a function" since 0.8.212

Aperta Adatta ai principianti
#6,830 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@miguel-heygen ci sta già lavorando.

Dal 30/10/2026.

  • #6831 di @miguel-heygen — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
node.js, typescript
Ambito
cli

Direzione di ricerca

Segui render --variables-file, --variables <path> e --variables - fino a resolveVariablesArg e parseVariablesArg; il problema indica come callback I/O non definiti sovrascrivono i valori predefiniti in readJsonFlagText. Leggi l’implementazione CLI pertinente e i relativi test, quindi esegui test mirati per gli input da file e stdin. Il lavoro è completato quando questi input vengono analizzati correttamente e il comportamento di inline JSON e --batch continua a funzionare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug triage/needs-triage
Describe the bug

hyperframes render --variables-file <file> fails before rendering on every version from 0.8.212 to 0.8.221 (latest at the time of writing). The same failure hits --variables <path> and --variables - (stdin). Inline JSON (--variables '{"title":"x"}') and --batch <file> still work.

Minimal reproduction

Any project with data-composition-variables:

echo '{}' > /tmp/vars.json
npx -y [email protected] render . --variables-file /tmp/vars.json -o /tmp/out.mp4
✗  Could not read the variables JSON
   /tmp/vars.json: io.readFile is not a function
Version --variables-file
0.8.210, 0.8.211 reads the file, render proceeds
0.8.212, 0.8.213, 0.8.216, 0.8.221 io.readFile is not a function

Linux (WSL2 Ubuntu), Node 24.19.0.

Cause (from the published dist of 0.8.221)

resolveVariablesArg(inline, filePath) calls parseVariablesArg(inline, filePath) with no readFile / readStdin, so it passes { readFile: undefined, readStdin: undefined } to readJsonFlagText:

function readJsonFlagText(value, partialIo = {}) {
  const io = { ...defaultIO, ...partialIo };   // undefined overrides the defaults
  ...
  return trimmed === "-" ? io.readStdin() : io.readFile(value);

An object spread copies keys whose value is undefined, so io.readFile is undefined.

Steps to reproduce
echo '{}' > /tmp/vars.json
npx -y [email protected] render . --variables-file /tmp/vars.json -o /tmp/out.mp4
Expected behavior

A rendered mp4 using the variables file is created

Actual behavior

◆ Rendering variables-fixture → C:\node_projects\hftemptest\out.mp4
30fps · standard · auto workers (16 cores detected)
GPU: browser GPU (auto-detect)

✗ Could not read the variables JSON

vars.json: io.readFile is not a function

Environment
The failed checks (unzip, FFmpeg, optional tools) are unrelated: the error is thrown while the flag is parsed, before any browser or encoder is touched.


hyperframes doctor
  ✓ Version          0.8.221 (latest)
  ✓ Node.js          v24.19.0 (linux x64)
  ✓ CPU              16 cores · Intel(R) Core(TM) Ultra 7 265H
  ✓ Memory           15.6 GB total · 6.0 GB available
  ✓ Disk             925.5 GB free
  ✓ Frames cache     /tmp/hyperframes-extract-cache-1000 · 925.5 GB free at /tmp · default
  ✗ Archive extractor Not found
  ✓ Settings lock    Not locked
  ✓ /dev/shm         7995 MB
  ✓ Environment      WSL · non-TTY
  ✗ whisper-cpp      Not found (optional — needed for transcription)
  ✗ TTS (Kokoro)     Not installed (optional — local voice fallback)
  ✗ BGM (MusicGen)   Not installed (optional — local music fallback)
  ✓ onnxruntime-node Not installed (installs on first use)
  ✓ @google/genai    Not installed (installs on first use)
  ✗ FFmpeg           FFmpeg is required to encode video.
  ✗ FFprobe          FFprobe is required to probe media assets.
  ✓ Chrome           cache: ~/.cache/hyperframes/chrome/chrome-headless-shell/linux-152.0.7977.30/...
  ✓ Docker           Docker version 29.6.2, build dfc4efb
  ✗ Docker running   Not running
Additional context

No response

Lingua principale
TypeScript
Stelle
54.1k
Fork
4.9k
Merge medio
8h 46m
PR unite (30g)
781

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di heygen-com/hyperframes

Tutte le issue di heygen-com/hyperframes

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.