Ir al contenido

Node + tsx: Solucionando el error '__name is not a function'

Seguro que te ha pasado: cambias una pieza pequeña de tu stack tecnológico y, de repente, nada funciona. Esos errores que aparecen solo al cambiar de runtime o de herramienta de ejecución son frustrantes porque el código fuente no ha cambiado, pero la infraestructura interna decide romperse sin previo aviso.

Este fallo suele ocurrir cuando las transformaciones automáticas de código chocan con el cargador del runtime, dejando helpers técnicos en un estado inválido que detiene tu flujo de trabajo por completo.

Para seguir esta guía o reproducir el error, necesitas lo siguiente:

  • Node.js: v25.x (confirmado en v25.3.0) o v22.x.
  • tsx: v4.21.0.
  • pnpm: Para la gestión de dependencias.
  • OpenClaw: Acceso al código fuente del proyecto.

Si necesitas reproducir el error rápidamente en tu entorno local para confirmar que te afecta, sigue estos pasos:

  1. Verifica que estás usando una versión de Node.js afectada:
    Ventana de terminal
    node --version
  2. Instala las dependencias del proyecto:
    Ventana de terminal
    pnpm install
  3. Intenta ejecutar el CLI usando tsx:
    Ventana de terminal
    node --import tsx src/entry.ts status

Si ves el error TypeError: __name is not a function, estás experimentando el conflicto entre el helper keepNames de esbuild (usado por tsx) y el loader de Node.

Si tu terminal muestra este crash, aquí tienes las dos mejores formas de solucionarlo mientras se investiga el problema de fondo con tsx:

Opción 1: Usar Bun para scripts de desarrollo

Sección titulada «Opción 1: Usar Bun para scripts de desarrollo»

Si tienes Bun instalado, puedes evitar el problema por completo volviendo a usar su runtime, que no presenta este conflicto con los helpers de transformación. Es la solución más rápida para seguir desarrollando sin fricciones.

Opción 2: Compilar con tsc y ejecutar con Node

Sección titulada «Opción 2: Compilar con tsc y ejecutar con Node»

Si prefieres mantenerte dentro de Node.js, la mejor recomendación es compilar primero con tsc y ejecutar el resultado directamente. Esto elimina la necesidad de que tsx transforme el código al vuelo.

Ejecuta el compilador en modo watch:

Ventana de terminal
pnpm exec tsc --watch --preserveWatchOutput

En otra terminal, ejecuta el archivo compilado:

Ventana de terminal
node --watch openclaw.mjs status

También puedes confirmar que funciona con una compilación única:

Ventana de terminal
pnpm exec tsc -p tsconfig.json
node openclaw.mjs status

¿Necesitas ayuda específica con tu configuración de Node.js? Prueba nuestro AI Setup Assistant.

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.