LeCodesdocs

CLI и локальная разработка

Редактор в браузере покрывает весь цикл, но в какой-то момент хочется свой редактор, свой git и свои инструменты. CLI lecodes переносит проект на твою машину: локальная разработка с полным IntelliSense, горячая перезагрузка прямо на телефоне по локальной сети и синхронизация с платформой одной командой.

Установка

CLI — это npm-пакет lecodes-cli (Node ≥ 18); команда, которую он ставит, называется lecodes:

bash
npm i -g lecodes-cli        # затем: lecodes <команда>
npx lecodes-cli <команда>   # или без установки

Если Node на машине нет, возьми standalone-сборку на странице Загрузок: распакуй архив и запусти ./lecodes install — бандл скопируется в библиотечную папку, а lecodes появится в PATH.

Заметка

lecodes --version показывает заодно версии опциональных пакетов (lecodes-renderer, lecodes-design, …) — полезно, когда какая-то команда жалуется, что ей чего-то не хватает.

Локальный проект — без аккаунта

Начать можно вообще без платформы: init разворачивает проект прямо на диске — ни логина, ни сервера.

bash
lecodes init myapp
cd myapp
lecodes dev

init кладёт стартовый main.ts, типы SDK и tsconfig.json — VS Code сразу даёт автодополнение по всем глобалам, офлайн. Команда идемпотентна: существующие файлы не трогает. Правила из Устройства проекта действуют и здесь — никаких пакетных импортов, точка входа без экспортов.

lecodes dev — горячая перезагрузка на устройстве

Главная команда локальной разработки. lecodes dev поднимает dev-сервер в локальной сети и печатает QR-код — отсканируй его приложением LeCodes, и проект откроется на телефоне нативно. Дальше цикл замыкается сам:

  • Каждое сохранение перекомпилируется и горячо подменяет работающее приложение прямо на устройстве; ошибка сборки откатывает к последней рабочей версии.
  • console.log и ошибки с устройства стримятся обратно в терминал.
  • URL стабилен между запусками — телефон переподключается к тому же адресу.

Логин не нужен, ассеты отдаются из рабочей папки. Флаги: --port (по умолчанию 4499), --host — если LAN-адрес определился неверно, --entry, --no-qr.

Проект на платформе — clone и push

Второй сценарий: проект живёт на le.codes, а ты работаешь с его локальной копией.

bash
lecodes login                        # откроет браузер и авторизует машину
lecodes clone <uuid-или-url> myapp   # файлы + ресурсы + типы
cd myapp
# …правки в своём редакторе…
lecodes status                       # что изменилось
lecodes diff                         # построчный diff с сервером
lecodes push -m "Новое меню"         # все правки — одним чекпоинтом

Модель проще git — без стейджинга и веток. push отправляет всё рабочее дерево, а сервер атомарно собирает из него один чекпоинт: добавления, правки, удаления и переносы сразу; переименования сохраняют историю, неизменённые бинарники повторно не загружаются. pull забирает текущее состояние сервера (можно указать пути, чтобы обновить только их; --force — отбросить локальные правки). Если сервер успел уйти вперёд, push остановится и покажет, что будет перезаписано.

Метаданные живут в .lecodes/ — это как .git: хочешь — коммить, хочешь — нет. Типы подтягиваются с сервера при clone/pull, поэтому всегда совпадают с задеплоенным рантаймом. Новый проект на сервере создаёт lecodes create <имя>, а push --publish вместе с чекпоинтом сразу публикует проект.

Совет

В CI логин не нужен: токен и адрес API передаются переменными окружения LECODES_TOKEN и LECODES_API. Сам токен создаётся в веб-интерфейсе (или lecodes login --token).

Компиляция и headless-рендер

bash
lecodes compile -o app.js   # весь проект — один портативный бандл
lecodes render --png        # скриншот приложения без устройства

compile собирает тот самый бандл из Устройства проекта — локально, меньше чем за секунду. Без -o бандл уходит в stdout (удобно в пайплайнах), --no-minify оставляет его читаемым. Для локального init-проекта бандл самодостаточен — его можно открыть в LeCodes Desktop.

render исполняет проект headless и возвращает семантический JSON-снимок интерфейса — или PNG с --png. Это основа автоматических проверок и работы AI-ассистентов: агент правит код, рендерит и сам видит результат. Нужен опциональный пакет lecodes-renderer (npm i -D lecodes-renderer, для PNG ещё @napi-rs/canvas); рендерятся UI и 2D, 3D-сцены — нет.

Рядом с CLI — design и scene

Из той же команды запускаются ещё два локальных инструмента:

  • LeCodes Design (lecodes design) — живой канвас экранов для проектирования приложения вместе с AI-ассистентом.
  • Редактор сцен (lecodes scene) — визуальный редактор .scene.ts: дерево сцены, инспектор, гизмо; правки пишутся прямо в исходник, а внешние правки из IDE подхватываются на лету (нужен опциональный пакет lecodes-3d-editor).

Полный список команд и флагов — lecodes --help.