require node >=18 in ai-setup, not just presence
ai-setup.sh проверял только наличие node через command -v, поэтому системный Node v12 (Ubuntu 22.04) проходил проверку и установка NodeSource 22 не запускалась. Из-за этого хук claude-notifier падал с SyntaxError на optional chaining (?.) и nullish coalescing (??), которые поддерживаются только начиная с Node 14. Теперь скрипт извлекает мажорную версию и при значении меньше 18 ставит/обновляет Node, чтобы регенерация не возвращала сломанные хуки. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -94,8 +94,19 @@ fi
|
||||
|
||||
# ── 1. Node.js ───────────────────────────────────────────────
|
||||
info "Проверяю Node.js..."
|
||||
if ! command -v node &>/dev/null; then
|
||||
# Хуки (claude-notifier и др.) используют optional chaining (?.) и nullish
|
||||
# coalescing (??) — нужен Node >=18. Проверяем не только наличие node, но и
|
||||
# мажорную версию, иначе системный v12 (Ubuntu 22.04) проходит проверку, а хуки падают.
|
||||
node_major=0
|
||||
if command -v node &>/dev/null; then
|
||||
node_major="$(node -p 'process.versions.node.split(".")[0]' 2>/dev/null || echo 0)"
|
||||
fi
|
||||
if [ "${node_major:-0}" -lt 18 ]; then
|
||||
if [ "${node_major:-0}" -gt 0 ]; then
|
||||
info "Найден Node.js v${node_major}, нужен >=18. Обновляю..."
|
||||
else
|
||||
info "Пытаюсь установить Node.js..."
|
||||
fi
|
||||
if command -v brew &>/dev/null; then
|
||||
brew install node
|
||||
elif command -v apt-get &>/dev/null; then
|
||||
|
||||
Reference in New Issue
Block a user