Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#6,830 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@miguel-heygen ya está trabajando en esto.

Desde el 30/10/2026.

  • #6831 de @miguel-heygen — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
node.js, typescript
Área
cli

Línea de trabajo

Sigue render --variables-file, --variables <path> y --variables - hasta resolveVariablesArg y parseVariablesArg; la incidencia señala cómo los callbacks de E/S indefinidos sobrescriben los valores predeterminados en readJsonFlagText. Lee la implementación pertinente de CLI y sus pruebas, y luego ejecuta pruebas específicas para las entradas desde archivo y stdin. El trabajo estará terminado cuando esas entradas se analicen correctamente y el comportamiento de inline JSON y --batch siga funcionando.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
TypeScript
Estrellas
54.1k
Forks
4.9k
Merge medio
8 h 46 min
PR fusionados (30 d)
781

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de heygen-com/hyperframes

Todos los issues de heygen-com/hyperframes

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.