Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Falha do Node + tsx com “__name is not a function”
Resumo
Executar o OpenClaw via Node comtsx falha na inicialização com:
tsx (commit 2871657e, 2026-01-06). O mesmo caminho de runtime funcionava com Bun.
Ambiente
- Node: v25.x (observado na v25.3.0)
- tsx: 4.21.0
- SO: macOS (a reprodução também é provável em outras plataformas que executam Node 25)
Reprodução (somente Node)
Reprodução mínima no repositório
Verificação da versão do Node
- Node 25.3.0: falha
- Node 22.22.0 (Homebrew
node@22): falha - Node 24: ainda não instalado aqui; precisa de verificação
Observações / hipótese
tsxusa esbuild para transformar TS/ESM. OkeepNamesdo esbuild emite um auxiliar__namee envolve definições de função com__name(...).- A falha indica que
__nameexiste, mas não é uma função em runtime, o que implica que o auxiliar está ausente ou foi sobrescrito para este módulo no caminho do loader do Node 25. - Problemas semelhantes com o auxiliar
__nameforam relatados em outros consumidores do esbuild quando o auxiliar está ausente ou é reescrito.
Histórico da regressão
2871657e(2026-01-06): scripts alterados de Bun para tsx para tornar Bun opcional.- Antes disso (caminho do Bun),
openclaw statusegateway:watchfuncionavam.
Soluções alternativas
- Use Bun para scripts de desenvolvimento (reversão temporária atual).
-
Use
tsgopara verificação de tipos do repositório e depois execute a saída compilada: -
Nota histórica:
tscfoi usado aqui durante a depuração deste problema de Node/tsx, mas as lanes de verificação de tipos do repositório agora usamtsgo. -
Desative o keepNames do esbuild no loader TS, se possível (evita a inserção do auxiliar
__name); atualmente, o tsx não expõe isso. -
Teste o Node LTS (22/24) com
tsxpara ver se o problema é específico do Node 25.
Referências
- https://opennext.js.org/cloudflare/howtos/keep_names
- https://esbuild.github.io/api/#keep-names
- https://github.com/evanw/esbuild/issues/1031
Próximos passos
- Reproduzir no Node 22/24 para confirmar a regressão no Node 25.
- Testar o nightly do
tsxou fixar em uma versão anterior, caso exista uma regressão conhecida. - Se reproduzir no Node LTS, abrir uma reprodução mínima upstream com o stack trace de
__name.