Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Sự cố sập Node + tsx “__name is not a function”
Tóm tắt
Chạy OpenClaw qua Node vớitsx bị lỗi khi khởi động với:
tsx (commit 2871657e, 2026-01-06). Cùng đường dẫn runtime này từng hoạt động với Bun.
Môi trường
- Node: v25.x (quan sát được trên v25.3.0)
- tsx: 4.21.0
- Hệ điều hành: macOS (khả năng cao cũng tái hiện được trên các nền tảng khác chạy Node 25)
Tái hiện lỗi (chỉ dùng Node)
Tái hiện lỗi tối thiểu trong kho mã
Kiểm tra phiên bản Node
- Node 25.3.0: lỗi
- Node 22.22.0 (Homebrew
node@22): lỗi - Node 24: chưa được cài đặt ở đây; cần xác minh
Ghi chú / giả thuyết
tsxdùng esbuild để biến đổi TS/ESM.keepNamescủa esbuild phát ra helper__namevà bọc các định nghĩa hàm bằng__name(...).- Sự cố sập cho thấy
__nametồn tại nhưng không phải là hàm tại runtime, ngụ ý rằng helper bị thiếu hoặc bị ghi đè cho module này trong đường dẫn loader của Node 25. - Các vấn đề tương tự liên quan đến helper
__nameđã được báo cáo trong những trình tiêu thụ esbuild khác khi helper bị thiếu hoặc bị viết lại.
Lịch sử hồi quy
2871657e(2026-01-06): các script đã đổi từ Bun sang tsx để biến Bun thành tùy chọn.- Trước đó (đường dẫn Bun),
openclaw statusvàgateway:watchhoạt động.
Cách khắc phục tạm thời
- Dùng Bun cho các script phát triển (hoàn nguyên tạm thời hiện tại).
-
Dùng
tsgođể kiểm tra kiểu của kho mã, rồi chạy đầu ra đã build: -
Ghi chú lịch sử:
tsctừng được dùng ở đây trong lúc gỡ lỗi vấn đề Node/tsx này, nhưng các lane kiểm tra kiểu của kho mã hiện dùngtsgo. -
Tắt keepNames của esbuild trong TS loader nếu có thể (ngăn chèn helper
__name); tsx hiện chưa cung cấp tùy chọn này. -
Kiểm thử Node LTS (22/24) với
tsxđể xem vấn đề có đặc thù với Node 25 hay không.
Tham khảo
- https://opennext.js.org/cloudflare/howtos/keep_names
- https://esbuild.github.io/api/#keep-names
- https://github.com/evanw/esbuild/issues/1031
Các bước tiếp theo
- Tái hiện trên Node 22/24 để xác nhận hồi quy của Node 25.
- Kiểm thử
tsxnightly hoặc ghim về phiên bản cũ hơn nếu có hồi quy đã biết. - Nếu tái hiện trên Node LTS, gửi một tái hiện lỗi tối thiểu lên upstream kèm stack trace
__name.