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.
Requisitos previos
Sección titulada «Requisitos previos»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.
Inicio rápido
Sección titulada «Inicio rápido»Si necesitas reproducir el error rápidamente en tu entorno local para confirmar que te afecta, sigue estos pasos:
- Verifica que estás usando una versión de Node.js afectada:
Ventana de terminal node --version - Instala las dependencias del proyecto:
Ventana de terminal pnpm install - 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.
Solución de problemas
Sección titulada «Solución de problemas»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:
pnpm exec tsc --watch --preserveWatchOutputEn otra terminal, ejecuta el archivo compilado:
node --watch openclaw.mjs statusTambién puedes confirmar que funciona con una compilación única:
pnpm exec tsc -p tsconfig.jsonnode openclaw.mjs status¿Necesitas ayuda específica con tu configuración de Node.js? Prueba nuestro AI Setup Assistant.
Próximos pasos
Sección titulada «Próximos pasos»- Revisa la documentación de esbuild sobre keep-names.
- Consulta cómo manejar keep_names en entornos Cloudflare/OpenNext.
OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.