Устали от сломанных окружений React Native? Разработчик создал CLI-инструмент для их починки
Разработчик Abdul Moueed создал утилиту rn-env-doctor, которая автоматически проверяет и исправляет типичные проблемы в настройке окружения для React Native, сэкономя часы на отладку сборки.
Вместо часов бессмысленного гугления и перебора версий JDK один простой скрипт покажет, что именно сломалось, и предложит решение.
Каждый, кто писал под React Native, знаком с этим ритуалом. Вчера всё работало. Сегодня проект не собирается, а в логе — загадочная ошибка. Причина? Да какая угодно: неправильная версия JDK, «протухшие» переменные окружения, несовместимый CocoaPods или отсутствующие компоненты Android SDK. Настройка окружения для кроссплатформенной разработки — это десятки связанных деталей, и найти поломанную можно потратить целый день.
Разработчик Abdul Moueed столкнулся с этим неоднократно и решил перестать бороться с ветряными мельницами. Он собрал утилиту rn-env-doctor — консольный инструмент, который проверяет вашу систему по официальному чек-листу React Native и пытается исправить найденные проблемы.
Что именно проверяет утилита
Вместо того чтобы выдавать общие ошибки, rn-env-doctor проводит точечную инспекцию ключевых компонентов:
- Базовый инструментарий: Node.js, менеджер версий nvm, Git, утилита Watchman и системные пакетные менеджеры (Homebrew для macOS, winget и Chocolatey для Windows).
- Для Android: версия JDK (актуальная — 17), переменные
JAVA_HOMEиANDROID_HOME, наличие adb, SDK Platform 35 и Build Tools 36.0.0. - Для iOS (только на macOS): установка Xcode, Command Line Tools, версия Ruby, его менеджеры (rbenv, RVM) и, конечно, CocoaPods.
Если что-то не так, инструмент не просто пишет «ошибка», а объясняет, что конкретно сломано и как это исправить.
Ключевые фишки
У проекта есть несколько интересных решений, которые выделяют его на фоне просто набора скриптов.
Нулевые зависимости. Для работы rn-env-doctor не нужно устанавливать никаких npm-пакетов. Достаточно клонировать репозиторий и запустить скрипт Node.js. Это делает его легковесным и готовым к использованию сразу после скачивания.
Автоматическая починка. Утилита может не только диагностировать, но и устанавливать недостающие инструменты. С вашего явного согласия она вызовет системный пакетный менеджер (Homebrew, apt, winget, pacman) и проведёт установку.
Умная настройка профилей. При добавлении переменных окружения вроде JAVA_HOME скрипт делает это «чисто», не создавая дубликатов в файле .bashrc или .zshrc.
Безопасность по умолчанию. Любое изменение системы требует вашего явного подтверждения. Утилита не начнёт ничего устанавливать или изменять молча.
Кроссплатформенность. Корректно работает на macOS, Linux и Windows.
Как пользоваться
Сценариев запуска два. Если Node.js уже установлен, всё просто: нужно клонировать репозиторий с GitHub, перейти в папку и выполнить node bin/rn-env-doctor.js. Для «сухой» проверки без исправлений есть флаг --check, а для полностью автоматического режима, где инструмент сам принимает все решения, — флаг --yes.
Для тех, у кого Node.js ещё нет, есть скрипты-загрузчики (bootstrap.sh для macOS/Linux и bootstrap.ps1 для Windows), которые подготовят минимальное окружение.
Что инструмент не делает (и почему)
Разработчик сознательно ограничил функциональность. Утилита не занимается установкой тяжеловесного ПО с графическим интерфейсом:
- Android Studio.
- Xcode.
- Виртуальных устройств Android (AVD) и образов симулятора iOS.
Вместо этого она точно скажет, что именно не установлено или не настроено, и подскажет, что нужно сделать вручную. Это логично: автоматизация установки таких монстров — сложный и ненадёжный путь.
Контекст и выводы
Инструмент rn-env-doctor — не революция, а скорее эволюция привычных скриптов для проверки окружения, которые опытные разработчики часто держат у себя в проектах. Его главная ценность — в стандартизации и автоматизации рутины. Для новичка он может сэкономить дни мучений, а для опытного разработчика — быстро выявить косяк после обновления macOS или перехода на новый ноутбук.
Проект выложен на GitHub с лицензией MIT, то есть полностью открыт. На данный момент он не опубликован в npm-репозитории, поэтому установка идёт через клонирование. Разработчик приглашает сообщество к обратной связи, особенно если кто-то столкнётся с нестандартными ситуациями на конкретных дистрибутивах Linux или конфигурациях.
В эпоху, когда обновления зависимостей случаются каждую неделю, а стек инструментов только усложняется, наличие такого «доктора» для окружения — приятное подспорье. Он не решает всех проблем кроссплатформенной разработки, но делает одну из самых нудных её частей — первоначальную настройку и отладку — заметно менее болезненной.