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
- …
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:
{ "$schema": "https://likec4.dev/schemas/config.json", "name": "cloud", "include": { "paths": ["../shared"] }}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"] }}Configuração de inclusão
Seção intitulada “Configuração de inclusão”A configuração include aceita um objeto com as seguintes propriedades:
{ "$schema": "https://likec4.dev/schemas/config.json", "name": "my-project", "include": { "paths": ["../shared", "../common/specs"], "maxDepth": 5, "fileThreshold": 50 }}paths- Array de caminhos relativos de diretórios (obrigatório)maxDepth- Profundidade máxima de diretórios a percorrer (padrão: 3, intervalo: 1-20)fileThreshold- Emite um aviso quando mais arquivos do que esse limite forem carregados (padrão: 30)
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
- …