smalljs$molPesquisar⌘ KDocsPlaygroundCompararEcossistemaSobrePT
Estrutura do projetoGetting StartedIntroduçãoModelo mentalPrimeiros passosDe TypeScript para view.treeEstrutura do projetoFerramentasEssentialsInstalaçãoViewsEstado e reatividadeRoteamentoRenderizaçãoTestesDeploySolução de problemasDataBusca de dadosEsquemas de dadosGiper BazaMoreVitrineDe React, Vue e SvelteLivro de receitasAdvancedPluginsMetadados de móduloOfflineVistas fantasmaAboutFAQEquipeLançamentosAPI$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

Estrutura do projeto

Um projeto $mol tem quatro níveis aninhados: o workspace que você clonou, os pacotes dentro dele, os módulos dentro dos pacotes e os arquivos dentro de um módulo. O arranjo responde a uma pergunta prática — onde vai um projeto novo e de quem é o seu histórico — e quase tudo o que o build faz decorre disso.mam/ workspace — o checkout do MAM├── .meta.tree registro: qual pacote vem de qual repositório├── mol/ pacote — o próprio framework, repositório git próprio└── my/ pacote — o seu, seu próprio repositório git ├── .gitattributes mantém os binários compilados intactos ├── my.meta.tree registro dos seus próprios projetos └── hello/ projeto — um módulo, e um repositório git próprio ├── index.html ponto de entrada (só módulos de aplicação) ├── hello.view.tree a marcação └── form/ submódulo — $my_hello_formNesta página cada linha da listagem traz um ponto de interrogação com o motivo de estar ali; as seções abaixo dizem o mesmo com mais calma.

Começar um projeto

Cinco passos. Só o primeiro se repete, e o scaffolder pode fazer os três últimos por você.1. Clone o workspace, uma vez. Tudo o que você escrever daqui em diante vive dentro dele.1git clone https://github.com/hyoo-ru/mam.git2cd mam2. Crie um pacote seu. Uma pasta curta — seu nome, sua empresa, seu apelido — e um repositório git próprio. É o contêiner de todo projeto que você começar:1mkdir my2cd my3git initPublique-o onde você guarda código, público ou privado. Já aproveite e coloque um .gitattributes com a única linha * -text; o motivo está abaixo, na seção sobre pacotes.3. Adicione o registro. my/my.meta.tree é a lista dos projetos dentro do seu pacote. Ele começa vazio e ganha uma linha por projeto:1pack hello git \https://github.com/you/hello.gitO MAM o lê do mesmo jeito que lê o .meta.tree do workspace um nível acima, então um colega que clonar my/ recebe os projetos também.4. Crie o projeto, com repositório próprio. A pasta é o componente — my/hello/ é $my_hello — e o histórico pertence a ele, não ao seu pacote nem ao $mol:1mkdir hello2cd hello3git initEssa separação é o ponto do arranjo: um commit em my/hello/ vai para o repositório hello, nunca para my e nunca para mol.5. Registre-o. Acrescente a linha pack do passo 3 em my/my.meta.tree, e um checkout novo do seu pacote busca o projeto pelo nome.O scaffolder escreve um módulo funcional para você a qualquer momento depois do passo 2:1npx create-view-tree-lsp my/hello

Workspace

Você clona o MAM uma vez e trabalha dentro dele. Não é uma pasta para onde as dependências são copiadas: cada pacote fica ali como um checkout git próprio, com histórico, então você pode ler o código-fonte do framework, colocar um debugger nele e abrir um pull request a partir da mesma cópia de trabalho.O .meta.tree da raiz é o registro que faz isso funcionar: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.gitQuando a build encontra $mol_view e ainda não existe uma pasta mol/, ela procura o nome aqui e clona o repositório. Nada é vendorizado e nada é achatado.

Pacotes

Uma pasta de primeiro nível é um pacote, e um pacote é um repositório git. O seu próprio pacote é só uma pasta que você nomeia: enquanto ficar local, não precisa de registro nenhum, e de uma linha pack no dia em que você quiser buscá-lo pelo nome.Pacotes se aninham. Um pacote pode carregar suas próprias declarações pack para as pastas dentro dele, e o MAM as lê do meta.tree da pasta que vai conter o pacote. Este site vive em bog/smalljs/ e é um repositório à parte, listado em bog/bog.meta.tree, que por sua vez está dentro do checkout bog/ listado no .meta.tree da raiz.

Um arquivo de que todo pacote precisa

Editar esta página no GitHubIsto foi útil?SimNãoAnteriorDe TypeScript para view.treePróximoFerramentas
Nesta páginaComeçar um projetoWorkspacePacotesUm arquivo de que todo pacote precisaMódulosArquivos em um móduloPastas geradas começam com um hífenO que o meta.tree realmente fazPróximo
Type to search the documentation.