From e9ea76c8fe40b114470346831aa682ab2c1dc05d Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Sat, 18 Apr 2026 17:26:00 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/debug/node-issue.md | 48 ++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/uk/debug/node-issue.md b/docs/uk/debug/node-issue.md index f5610e683..c76a88f7c 100644 --- a/docs/uk/debug/node-issue.md +++ b/docs/uk/debug/node-issue.md @@ -1,37 +1,37 @@ --- read_when: - - Налагодження dev-скриптів лише для Node або збоїв у режимі watch - - Дослідження збоїв loader tsx/esbuild в OpenClaw -summary: Нотатки про збій Node + tsx "__name is not a function" і способи обходу + - Налагодження збоїв dev-скриптів лише для Node або режиму watch + - Розслідування збоїв завантажувача tsx/esbuild в OpenClaw +summary: Нотатки про збій Node + tsx "__name is not a function" і обхідні шляхи title: Збій Node + tsx x-i18n: - generated_at: "2026-04-05T18:02:27Z" + generated_at: "2026-04-18T17:25:46Z" model: gpt-5.4 provider: openai - source_hash: f5beab7cdfe7679680f65176234a617293ce495886cfffb151518adfa61dc8dc + source_hash: ca45c795c356ada8f81e75b394ec82743d3d1bf1bbe83a24ec6699946b920f01 source_path: debug/node-issue.md workflow: 15 --- -# Збій Node + tsx "\_\_name is not a function" +# Збій Node + tsx "`__name is not a function`" ## Підсумок Запуск OpenClaw через Node з `tsx` завершується помилкою під час старту: -``` +```text [openclaw] Failed to start CLI: TypeError: __name is not a function at createSubsystemLogger (.../src/logging/subsystem.ts:203:25) at .../src/agents/auth-profiles/constants.ts:25:20 ``` -Це почалося після переходу dev-скриптів з Bun на `tsx` (коміт `2871657e`, 2026-01-06). Той самий шлях runtime працював із Bun. +Це почалося після перемикання dev-скриптів з Bun на `tsx` (коміт `2871657e`, 2026-01-06). Той самий шлях виконання раніше працював із Bun. ## Середовище - Node: v25.x (спостерігалося на v25.3.0) - tsx: 4.21.0 -- OS: macOS (відтворення також імовірне на інших платформах, де запускається Node 25) +- ОС: macOS (відтворення також імовірне на інших платформах, де запускається Node 25) ## Відтворення (лише Node) @@ -50,34 +50,34 @@ node --import tsx scripts/repro/tsx-name-repro.ts ## Перевірка версії Node -- Node 25.3.0: збій -- Node 22.22.0 (Homebrew `node@22`): збій -- Node 24: тут ще не встановлено; потребує перевірки +- Node 25.3.0: помилка +- Node 22.22.0 (Homebrew `node@22`): помилка +- Node 24: тут ще не встановлено; потрібна перевірка ## Нотатки / гіпотеза -- `tsx` використовує esbuild для перетворення TS/ESM. `keepNames` в esbuild генерує допоміжну функцію `__name` і обгортає визначення функцій у `__name(...)`. -- Збій вказує, що `__name` існує, але не є функцією під час runtime, що означає, що допоміжна функція відсутня або перезаписана для цього модуля в шляху loader Node 25. -- Подібні проблеми з допоміжною функцією `__name` уже повідомлялися в інших споживачах esbuild, коли ця допоміжна функція відсутня або переписана. +- `tsx` використовує esbuild для трансформації TS/ESM. `keepNames` в esbuild створює допоміжний елемент `__name` і обгортає визначення функцій у `__name(...)`. +- Збій означає, що `__name` існує, але не є функцією під час виконання, а це вказує на те, що допоміжний елемент відсутній або перезаписаний для цього модуля в шляху завантажувача Node 25. +- Про схожі проблеми з допоміжним елементом `__name` уже повідомляли в інших споживачів esbuild, коли цей допоміжний елемент відсутній або переписаний. ## Історія регресії - `2871657e` (2026-01-06): скрипти змінено з Bun на tsx, щоб зробити Bun необов’язковим. - До цього (шлях Bun) `openclaw status` і `gateway:watch` працювали. -## Способи обходу +## Обхідні шляхи - Використовувати Bun для dev-скриптів (поточне тимчасове повернення). -- Використовувати Node + tsc watch, а потім запускати скомпільований вивід: +- Використовувати `tsgo` для перевірки типів у репозиторії, а потім запускати зібраний вивід: ```bash - pnpm exec tsc --watch --preserveWatchOutput - node --watch openclaw.mjs status + pnpm tsgo + node openclaw.mjs status ``` -- Локально підтверджено: `pnpm exec tsc -p tsconfig.json` + `node openclaw.mjs status` працює на Node 25. -- Вимкнути `keepNames` esbuild у TS loader, якщо це можливо (це запобігає вставленню допоміжної функції `__name`); наразі tsx цього не надає. -- Перевірити Node LTS (22/24) з `tsx`, щоб з’ясувати, чи проблема є специфічною для Node 25. +- Історична примітка: `tsc` тут використовувався під час налагодження цієї проблеми Node/tsx, але тепер у репозиторії для перевірки типів використовуються шляхи `tsgo`. +- Вимкнути esbuild `keepNames` у TS-завантажувачі, якщо це можливо (це запобігає вставці допоміжного елемента `__name`); наразі tsx не надає такого параметра. +- Перевірити Node LTS (22/24) із `tsx`, щоб з’ясувати, чи проблема специфічна для Node 25. ## Посилання @@ -88,5 +88,5 @@ node --import tsx scripts/repro/tsx-name-repro.ts ## Наступні кроки - Відтворити на Node 22/24, щоб підтвердити регресію Node 25. -- Перевірити `tsx` nightly або закріпити раннішу версію, якщо існує відома регресія. -- Якщо відтворюється на Node LTS, подати мінімальний приклад відтворення upstream зі stack trace `__name`. +- Перевірити `tsx` nightly або зафіксувати попередню версію, якщо відома регресія справді існує. +- Якщо проблема відтворюється на Node LTS, створити мінімальне відтворення upstream із трасуванням стека `__name`.