smalljs$molПошук⌘ KДокументаціяПісочницяПорівнянняЕкосистемаПро проєктUK
Структура проєктуGetting StartedВступМентальна модельПочаток роботиВід TypeScript до view.treeСтруктура проєктуІнструментарійEssentialsВстановленняВидиСтан і реактивністьМаршрутизаціяРендерингТестуванняДеплойРозв'язання проблемDataОтримання данихСхеми данихGiper BazaMoreВітринаЗ React, Vue та SvelteЗбірник рецептівAdvancedПлагіниМетадані модуляОфлайнПодання-привиди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-проєкта чотири вкладені рівні: воркспейс, який ви склонували, пакети всередині нього, модулі всередині пакетів і файли всередині модуля. Розкладка відповідає на одне практичне питання — куди класти новий проєкт і кому належить його історія, — і майже все, що робить збірка, випливає з неї.mam/ воркспейс — склонований MAM├── .meta.tree реєстр: який пакет із якого репозиторію├── mol/ пакет — сам фреймворк, свій git-репозиторій└── my/ пакет — ваш, ваш git-репозиторій ├── .gitattributes зберігає зібрані бінарники цілими ├── my.meta.tree реєстр ваших проєктів └── hello/ проєкт — модуль і свій git-репозиторій ├── index.html точка входу (лише в модулів-застосунків) ├── hello.view.tree розмітка └── form/ підмодуль — $my_hello_formНа цій сторінці біля кожного рядка листингу є знак питання з причиною, чому він тут; розділи нижче кажуть те саме докладно.

Як завести проєкт

П'ять кроків. Повторюється лише перший, а останні три за вас може зробити скафолдер.1. Склонуйте воркспейс, один раз. Усе, що ви напишете далі, живе всередині нього.1git clone https://github.com/hyoo-ru/mam.git2cd mam2. Заведіть свій пакет. Одна коротка тека — ваше ім'я, ваша компанія, ваш нік — і власний git-репозиторій. Це контейнер для всіх проєктів, які ви почнете:1mkdir my2cd my3git initВикладіть його туди, де тримаєте код, публічно чи приватно. Заразом покладіть поруч .gitattributes з єдиним рядком * -text; навіщо — у розділі про пакети нижче.3. Додайте реєстр. my/my.meta.tree — список проєктів усередині вашого пакета. Він починається порожнім і отримує по рядку на проєкт:1pack hello git \https://github.com/you/hello.gitMAM читає його так само, як кореневий .meta.tree рівнем вище, тож колега, який склонував my/, отримає й проєкти.4. Створіть проєкт із власним репозиторієм. Тека і є компонент — my/hello/ це $my_hello, — а історія належить йому, а не вашому пакету й не $mol:1mkdir hello2cd hello3git initУ цьому розділенні й сенс розкладки: коміт у my/hello/ іде в репозиторій hello, ніколи не в my і не в mol.5. Пропишіть його. Додайте рядок pack із кроку 3 у my/my.meta.tree — і свіжий чекаут вашого пакета підтягне проєкт за іменем. Скафолдер напише робочий модуль за вас будь-коли після другого кроку:1npx create-view-tree-lsp my/hello

Робочий простір

MAM клонують один раз і працюють усередині нього. Це не тека, куди копіюються залежності: кожен пакет лежить там власним git-чекаутом, з історією, тож ви можете читати вихідники фреймворка, поставити в них debugger і відкрити pull request із тієї самої робочої копії.Кореневий .meta.tree — реєстр, який це забезпечує:1pack mol git \https://github.com/hyoo-ru/mam_mol.git2pack hyoo git \https://github.com/hyoo-ru/mam_hyoo.git3pack lib git \https://github.com/hyoo-ru/mam_lib.gitКоли збірка зустрічає $mol_view, а теки mol/ ще немає, вона шукає ім'я тут і клонує репозиторій. Нічого не вендориться й нічого не сплощується.

Пакети

Тека верхнього рівня — це пакет, а пакет — це git-репозиторій. Ваш власний пакет просто тека, яку ви назвали: доки він живе локально, реєстрація йому не потрібна, а рядок pack знадобиться того дня, коли ви захочете отримувати його за іменем.Пакети вкладаються один в одного. Пакет може нести власні оголошення pack для тек усередині себе, і MAM читає їх із meta.tree тієї теки, яка міститиме пакет. Цей сайт лежить у bog/smalljs/ і сам є репозиторієм, переліченим у bog/bog.meta.tree, який, своєю чергою, міститься всередині чекауту bog/ з кореневого .meta.tree.

Один файл, потрібний кожному пакету

Редагувати цю сторінку на GitHubЦе було корисно?ТакНіНазадВід TypeScript до view.treeДаліІнструментарій
На цій сторінціЯк завести проєктРобочий простірПакетиОдин файл, потрібний кожному пакетуМодуліФайли в модуліЗгенеровані теки починаються з дефісаЩо насправді робить meta.treeДалі
Type to search the documentation.