smalljs$mol搜尋⌘ K文件遊樂場比較生態系統關於ZH_HK
專案結構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. 建一個屬於你的套件。 一個短名目錄——你的名字、你的公司、你的 ID——而且是一個獨立的 git 儲存庫。它是你今後所有專案的容器:1mkdir my2cd my3git init把它推到你放程式的地方,公開或私有都行。順手加一個只有 * -text 一行的 .gitattributes;原因見下面關於套件的小節。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,也不會進 mol5. 登記它。 把第 3 步的 pack 行寫進 my/my.meta.tree,之後新的檢出就會按名字把專案取回來。第 2 步之後的任何時候, 鷹架工具都能替你寫出一個能跑的模組: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_viewmol/ 資料夾還不存在時,它會到這裏查這個名字並複製儲存庫。沒有任何東西被 vendor 進來,也沒有任何東西被壓平。

套件

頂層資料夾就是一個套件,而套件就是一個 git 儲存庫。你自己的套件只是一個由你命名的資料夾:只要它還留在本機,就不需要任何登記;等到你想按名字拉取它的那天,再加一行 pack套件可以巢狀。一個套件能為自己內部的資料夾攜帶自己的 pack 宣告,MAM 從將要容納該套件的那個資料夾的 meta.tree 中讀取它們。本站位於 bog/smalljs/,本身就是一個儲存庫,登記在 bog/bog.meta.tree 裏;而後者又位於根 .meta.tree 所列的 bog/ 複製之中。

每個套件都需要的一個檔案

會被部署的套件需要一個只有一行內容的 .gitattributes1* -text
在 GitHub 上編輯此頁這有幫助嗎?上一頁從 TypeScript 到 view.tree下一頁工具鏈
本頁內容開一個專案工作區套件每個套件都需要的一個檔案模組模組裏的檔案生成的資料夾以短橫線開頭meta.tree 實際做的事下一步
Type to search the documentation.