smalljs$mol검색⌘ K문서플레이그라운드비교에코시스템소개KO
프로젝트 구조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코드를 보관하는 곳에 공개든 비공개든 올려두세요. 겸사겸사 * -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 저장소로 가고, mymol로는 절대 가지 않습니다.5. 등록합니다. 3단계의 pack 줄을 my/my.meta.tree에 넣으면, 패키지를 새로 체크아웃할 때 이름으로 프로젝트를 가져옵니다.2단계 이후라면 언제든 스캐폴더가 동작하는 모듈을 대신 써 줍니다:1npx create-view-tree-lsp my/hello

워크스페이스

MAM은 한 번 클론해 두고 그 안에서 작업합니다. 의존성이 복사되어 들어오는 폴더가 아닙니다. 모든 패키지가 자기 git 체크아웃으로, 히스토리를 지닌 채 거기에 놓여 있으므로, 프레임워크의 소스를 읽고 거기에 debugger를 넣고 같은 작업 사본에서 풀 리퀘스트를 열 수 있습니다.루트의 .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에 등재되어 있습니다. 그리고 그 파일은 루트 .meta.tree에 등재된 bog/ 체크아웃 안에 있습니다.

모든 패키지에 필요한 파일 하나

배포되는 패키지에는 단 한 줄짜리 .gitattributes가 필요합니다.1* -text
GitHub에서 이 페이지 편집도움이 되었나요?아니요이전TypeScript에서 view.tree로다음도구
이 페이지에서프로젝트 시작하기워크스페이스패키지모든 패키지에 필요한 파일 하나모듈모듈 안의 파일생성된 폴더는 하이픈으로 시작합니다meta.tree가 실제로 하는 일다음
Type to search the documentation.