smalljs$molПоиск⌘ KДокументацияПесочницаСравнениеЭкосистемаО проектеRU
ИнструментарийGetting StartedВведениеМентальная модельБыстрый стартОт TypeScript к view.treeСтруктура проектаИнструментарийEssentialsУстановкаВьюСостояние и реактивностьРоутингРендерингТестированиеДеплойРешение проблемDataЗагрузка данныхСхемы данныхГипер БазаMoreВитринаИз React, Vue и SvelteСборник рецептовAdvancedПлагиныМетаданные модуляОфлайнGhost-вьюAboutЧастые вопросыКомандаРелизыAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Инструментарий

$mol работает в любом редакторе, но небольшой набор инструментов делает .view.tree и типизированные стили гораздо удобнее: генератор проектов, языковой сервер, интеграции с редакторами Zed и VS Code, а также скилл, который учит LLM-ассистентов фреймворку.

Генерация проекта

create-view-tree-lsp создаёт готовый к запуску модуль $mol, чтобы вам не собирать шаблонный код вручную:1npx create-view-tree-lsp bog/myappЗапускать из корня своей копии MAM: пути модулей отсчитываются оттуда, там же проекту и жить. Вне воркспейса команда предупредит, а не оставит выяснять это на первой сборке.Аргумент — путь модуля (namespace/name или эквивалентное bog_myapp). Он записывает view.tree, view.ts, view.css.ts и index.html для работающего приложения, плюс GitHub Actions для его деплоя.Всё, что генератор умеет положить, кладётся по умолчанию. Вы называете только то, чего не хотите:1npx create-view-tree-lsp bog/myapp --no-tauri --no-backend--no-baza — local-first хранилище Гипер База--no-docker — настройка Docker с docker-compose.yml и конфигом nginx--no-tauri — десктопная оболочка Tauri--no-backend — REST-бэкенд $mol_server с хранилищем node:sqlite и общим типом элемента на TypeScript--no-prerender, --no-seo — видимость для поисковиков, описанная ниже в разделе Непрерывная интеграцияНезнакомый флаг обрывает запуск, так что опечатка не оставит в проекте лишнего молча.Генератор — это тонкая обёртка над CLI языкового сервера, так что npx view-tree-lsp create bog/myapp делает то же самое напрямую.

Переводы

Переводы лежат рядом со своим модулем, в <модуль>/<имя>.locale=<lang>.json. Коду так удобно, переводчику — нет: вместо одного списка фраз он получает тридцать мелких файлов. $yuf_localizer закрывает этот разрыв. Укажите ему адреса проектов и коды языков — и он покажет все ключи одним списком с поиском, отмечая те, до которых ещё не дошли руки: ключи, которые есть только по-английски, изменённые, но не зафиксированные, и устаревшие, которых в проекте уже нет. Переводы держатся в браузере, пока вы их не выгрузите, так что между заходами ничего не теряется.Когда переводчик закончил, выгрузите результат и разложите его обратно по модулям:1# из корня MAM2npx view-tree-lsp locale bog/myapp/app/- --exclude=mol --updateАргументом можно дать и папку, и отдельный файл локали. Флаги:Ключ несёт путь к своему модулю, поэтому $my_page_greeting попадёт в my/page/page.locale=ru.json — рядом с исходниками, которым принадлежит. А вот вычислить этот модуль сложнее, чем кажется: _ разделяет и папки, и слова, так что «самый длинный совпавший путь» — неверный ответ. В $my_page_lang_hint свойство начинается на lang, и настоящий соседний подмодуль my/page/lang забрал бы ключ себе. Поэтому команда спрашивает у каждого кандидата, какие ключи он объявил — MAM записывает ровно их в его файл локали в -view.tree, — и отдаёт ключ владельцу.

Непрерывная интеграция

Генератор записывает GitHub Actions в .github/workflows/, так что новый проект деплоится и релизится без дополнительной настройки.deploy.yml запускается на каждый push. Он собирает приложение с помощью hyoo-ru/mam_build, публикует app/- в GitHub Pages из main и даёт каждой ветке feature/* свою папку предпросмотра — она удаляется автоматически, когда ветку удаляют.

SEO

Редактировать эту страницу на GitHubБыло полезно?ДаНетНазадСтруктура проектаВперёдУстановка
На этой страницеГенерация проектаПереводыНепрерывная интеграцияSEOДесктоп TauriЯзыковой серверZedVS CodeСкилл для LLMСсылки
Type to search the documentation.