Vários projetos
Às vezes, você pode querer dividir seu modelo LikeC4 em vários modelos, com base em domínios, equipes ou qualquer outro critério.
Você pode fazer isso criando vários projetos no seu workspace e vinculando-os entre si.
Também pode usar esse recurso para compartilhar seu modelo com outras equipes ou projetos.
Crie arquivos likec4.config.json nas pastas que você deseja transformar em projetos:
Directorycloud
- likec4.config.json
- service1.c4
- service2.c4
- …
Directoryexternals
- likec4.config.json
- amazon.c4
- …
O LikeC4 encontra os projetos percorrendo o workspace (a pasta aberta no editor ou o caminho passado à CLI) em busca de arquivos de configuração, ignorando pastas como node_modules e .git.
Cada arquivo de configuração define um projeto na sua pasta.
Um arquivo-fonte pertence ao projeto com a pasta mais próxima.
Arquivos fora de qualquer pasta de projeto, e não incluídos por nenhum projeto, pertencem ao projeto default.
Os projetos podem ser aninhados.
Nesse caso, os arquivos do projeto aninhado não fazem parte do projeto pai.
Directorycloud
- likec4.config.json
- service1.c4
- service2.c4
Directorynested
- likec4.config.json
- service3.c4 // fará parte do projeto ‘nested’, não do projeto ‘cloud’
Importar elementos
Seção intitulada “Importar elementos”Você pode importar elementos de outros projetos usando a palavra-chave import.
import { serviceA } from 'projectA'
model { serviceB = service { -> serviceA.api 'calls serviceA' }}Compartilhar especificação
Seção intitulada “Compartilhar especificação”Você pode compartilhar arquivos de especificação (ou qualquer outra fonte LikeC4) entre vários projetos usando a opção de configuração include.
Usando caminhos de inclusão
Seção intitulada “Usando caminhos de inclusão”Adicione uma configuração include ao seu projeto para incluir arquivos de diretórios fora da pasta do projeto:
Directoryshared
- specs.c4
- common-styles.c4
Directorycloud
- likec4.config.json
- services.c4
- …
Directoryexternals
- likec4.config.json
- amazon.c4
- …
Os projetos cloud e externals podem incluir a especificação compartilhada:
{ "$schema": "https://likec4.dev/schemas/config.json", "name": "cloud", "include": { "paths": ["../shared"] }}{ "$schema": "https://likec4.dev/schemas/config.json", "name": "externals", "include": { "paths": ["../shared"] }}Os caminhos são relativos à pasta do projeto.
Para maxDepth, fileThreshold e as regras dos caminhos, veja Incluir diretórios adicionais.
Usando links simbólicos (alternativa)
Seção intitulada “Usando links simbólicos (alternativa)”Como alternativa, você pode usar links simbólicos para compartilhar arquivos:
Directoryshared
- specs.c4
Directorycloud
- specs.c4 // -> ../shared/specs.c4
- likec4.config.json
- …
Directoryexternals
- specs.c4 // -> ../shared/specs.c4
- likec4.config.json
- …