Projekt v $mol má čtyři vnořené úrovně: workspace, který jste naklonovali, balíky uvnitř, moduly v balících a soubory v modulu. Rozvržení odpovídá na jednu praktickou otázku — kam patří nový projekt a komu patří jeho historie — a skoro všechno, co build dělá, z toho plyne.mam/ workspace — naklonovaný MAM├── .meta.tree rejstřík: který balík z kterého repozitáře├── mol/ balík — samotný framework, vlastní git repozitář└── my/ balík — váš, váš vlastní git repozitář ├── .gitattributes udrží sestavené binárky nedotčené ├── my.meta.tree rejstřík vašich projektů └── hello/ projekt — modul a vlastní git repozitář ├── index.html vstupní bod (jen moduly aplikací) ├── hello.view.tree rozvržení └── form/ podmodul — $my_hello_formNa této stránce nese každý řádek výpisu otazník s důvodem, proč tam je; sekce níž říkají totéž obšírněji.
Pět kroků. Opakuje se jen první a poslední tři za vás zvládne scaffolder.1. Naklonujte workspace, jednou. Všechno, co od teď napíšete, žije uvnitř.1gitclonehttps://github.com/hyoo-ru/mam.git2cdmam2. Založte si vlastní balík. Jedna krátká složka — vaše jméno, vaše firma, vaše přezdívka — a vlastní git repozitář. Je to kontejner na každý projekt, který začnete:1mkdirmy2cdmy3gitinitVystavte ho tam, kde držíte kód, veřejně nebo privátně. Rovnou k němu přidejte .gitattributes s jediným řádkem *-text; proč, je níž v sekci o balících.3. Přidejte rejstřík.my/my.meta.tree je seznam projektů uvnitř vašeho balíku. Začíná prázdný a dostává řádek na projekt:1pack hello git \https://github.com/you/hello.gitMAM ho čte stejně jako .meta.tree workspace o úroveň výš, takže kolega, který naklonuje my/, dostane i projekty.4. Vytvořte projekt s vlastním repozitářem. Složka je komponenta — my/hello/ je $my_hello — a historie patří jí, ne vašemu balíku ani $mol:1mkdirhello2cdhello3gitinitV tom oddělení je smysl rozvržení: commit v my/hello/ jde do repozitáře hello, nikdy do my a nikdy do mol.5. Zapište ho. Přidejte řádek pack z kroku 3 do my/my.meta.tree a čerstvý checkout vašeho balíku si projekt stáhne podle jména.Scaffolder vám kdykoli po druhém kroku napíše funkční modul:1npxcreate-view-tree-lspmy/hello
MAM naklonujete jednou a pracujete uvnitř něj. Není to složka, do které se kopírují závislosti: každý balíček tam leží jako vlastní git checkout, s historií, takže si můžete číst zdrojáky frameworku, vložit do nich debugger a otevřít pull request ze stejné pracovní kopie.Kořenový .meta.tree je registr, který to umožňuje: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.gitKdyž build narazí na $mol_view a složka mol/ ještě neexistuje, vyhledá jméno tady a naklonuje repozitář. Nic se nevendoruje a nic se nezplošťuje.
Složka nejvyšší úrovně je balíček a balíček je git repozitář. Váš vlastní balíček je prostě složka, kterou pojmenujete: dokud zůstává lokální, žádnou registraci nepotřebuje, a řádek pack až v den, kdy ho budete chtít stahovat podle jména.Balíčky se vnořují. Balíček může nést vlastní deklarace pack pro složky uvnitř sebe a MAM je čte z meta.tree té složky, která bude balíček obsahovat. Tento web žije v bog/smalljs/ a je samostatným repozitářem uvedeným v bog/bog.meta.tree, který sám leží uvnitř checkoutu bog/ uvedeného v kořenovém .meta.tree.