Pular para o conteúdo principal
Versão: Próxima

Comandos CLI de Dependências de Módulos

O Invowk fornece um conjunto de comandos invowk module para gerenciar dependências declaradas em invowkmod.cue.

Visão Geral dos Comandos

ComandoDescrição
invowk module addAdiciona uma dependência de módulo (resolve, faz cache e atualiza lock file e invowkmod.cue)
invowk module removeRemove uma dependência de módulo (atualiza lock file e invowkmod.cue)
invowk module depsLista dependências resolvidas
invowk module syncResolve dependências de invowkmod.cue
invowk module updateAtualiza dependências para as versões mais recentes compatíveis
invowk module tidyAdiciona dependências transitivas faltantes ao invowkmod.cue
invowk module vendorFaz vendor das dependências em invowk_modules/

invowk module add

Resolve uma dependência, faz cache, atualiza o lock file e autoedita invowkmod.cue para adicionar a entrada em requires.

Uso

invowk module add <git-url> <version> [flags]

Argumentos

ArgumentoDescrição
git-urlURL do repositório Git (HTTPS ou SSH)
versionRestrição de versão semântica

Flags

FlagDescrição
--alias <name>Namespace personalizado para a dependência
--path <path>Subdiretório dentro do repositório

Exemplos

# Add a dependency with caret version
invowk module add https://github.com/user/mod.invowkmod.git ^1.0.0

# Add with SSH URL
invowk module add git@github.com:user/mod.invowkmod.git ~2.0.0

# Add with custom alias
invowk module add https://github.com/user/common.invowkmod.git ^1.0.0 --alias tools

# Add from monorepo subdirectory
invowk module add https://github.com/user/monorepo.invowkmod.git ^1.0.0 --path modules/cli

Saída

Add Module Dependency

ℹ Resolving https://github.com/user/mod.invowkmod.git@^1.0.0...
✓ Module resolved and lock file updated

ℹ Git URL: https://github.com/user/mod.invowkmod.git
ℹ Version: ^1.0.0 → 1.2.3
ℹ Namespace: mod@1.2.3
ℹ Cache: /home/user/.invowk/modules/github.com/user/mod.invowkmod/1.2.3
✓ Updated invowkmod.cue with new requires entry
observação

invowk module add realiza três ações automaticamente:

  1. Resolve e faz cache do módulo
  2. Atualiza o lock file
  3. Autoedita invowkmod.cue para adicionar a entrada em requires (se o arquivo existir)

invowk module remove

Remove uma dependência de módulo do lock file e de invowkmod.cue.

Uso

invowk module remove <identifier>

Argumentos

ArgumentoDescrição
identifierIdentificador do módulo: URL Git, alias, nome do módulo ou chave completa (modulename@version)

Exemplos

invowk module remove https://github.com/user/mod.invowkmod.git

Saída

Remove Module Dependency

ℹ Removing https://github.com/user/mod.invowkmod.git...
✓ Removed mod@1.2.3

✓ Lock file and invowkmod.cue updated
observação

invowk module remove realiza duas ações automaticamente:

  1. Remove o módulo do lock file
  2. Autoedita invowkmod.cue para remover a entrada correspondente em requires

Arquivos de cache não são deletados.

invowk module deps

Lista todas as dependências resolvidas no lock file.

Uso

invowk module deps

Saída

Module Dependencies

• Found 2 module dependency(ies)

✓ build-tools@2.3.1
Git URL: https://github.com/company/build-tools.invowkmod.git
Version: ^2.0.0 → 2.3.1
Commit: abc123def456
Cache: /home/user/.invowk/modules/github.com/company/build-tools.invowkmod/2.3.1

✓ deploy-utils@1.5.2
Git URL: https://github.com/company/deploy-tools.invowkmod.git
Version: ~1.5.0 → 1.5.2
Commit: 789xyz012abc
Cache: /home/user/.invowk/modules/github.com/company/deploy-tools.invowkmod/1.5.2

Sem Dependências

Module Dependencies

• No module dependencies found

• To add modules, use: invowk module add <git-url> <version>

invowk module sync

Sincroniza todas as dependências declaradas em invowkmod.cue. Lê o campo requires, resolve restrições de versão, baixa módulos e atualiza o lock file.

Uso

invowk module sync

Saída

Sync Module Dependencies

• Found 2 requirement(s) in invowkmod.cue

✓ build-tools@2.3.1 → 2.3.1
✓ deploy-utils@1.5.2 → 1.5.2

✓ Lock file updated: invowkmod.lock.cue

Sem Requirements

Sync Module Dependencies

• No requires field found in invowkmod.cue

invowk module update

Atualiza dependências para as versões mais recentes compatíveis com as restrições declaradas.

Uso

invowk module update [identifier]

Argumentos

ArgumentoDescrição
identifier(Opcional) Dependência específica para atualizar: URL Git, alias, nome do módulo ou chave completa (modulename@version)

Exemplos

# Update all modules
invowk module update

# Update a specific module
invowk module update https://github.com/user/mod.invowkmod.git

Saída

Update Module Dependencies

• Updating all modules...

✓ build-tools@2.3.1 → 2.4.0
✓ deploy-utils@1.5.2 → 1.5.3

✓ Lock file updated: invowkmod.lock.cue

Sem Atualizações

Update Module Dependencies

• Updating all modules...
• No modules to update

invowk module tidy

Verifica todas as dependências resolvidas e adiciona requisitos transitivos faltantes ao seu invowkmod.cue. Implementa o modelo de dependências explícitas: todo módulo na árvore de dependências deve aparecer no seu invowkmod.cue.

Uso

invowk module tidy

O Que Ele Faz

  1. Analisa seu invowkmod.cue para obter os requisitos declarados
  2. Resolve cada dependência e inspeciona seus próprios requires
  3. Identifica dependências transitivas não declaradas no seu invowkmod.cue
  4. Adiciona automaticamente as entradas faltantes ao invowkmod.cue

Após executar tidy, execute invowk module sync para atualizar o lock file.

Saída

Tidy Module Dependencies
ℹ Found 3 requirement(s) in invowkmod.cue
ℹ Resolving dependencies to find missing transitive requirements...
✓ Added https://github.com/example/utils.invowkmod.git (^1.0.0)

✓ Added 1 missing transitive dependency(ies) to invowkmod.cue
ℹ Run invowk module sync to update the lock file

invowk module vendor

Faz vendor das dependências no diretório invowk_modules/ para uso offline e distribuição.

Uso

invowk module vendor [module-path]

Saída

Vendor Module Dependencies

• Found 2 requirement(s) in invowkmod.cue
• Loading from lock file
• Vendor directory: /home/user/project/invowk_modules

✓ common@1.2.3
✓ deploy@1.5.4

✓ Vendored 2 module(s) successfully
observação

invowk module vendor resolve as dependências e as copia para invowk_modules/. Se invowkmod.lock.cue existir, o vendor usa por padrão as versões travadas. Use --update para forçar nova resolução e --prune para remover módulos vendorizados obsoletos.

Workflows Comuns

Configuração Inicial

# 1. Resolve dependencies
invowk module add https://github.com/company/build-tools.invowkmod.git ^2.0.0 --alias build
invowk module add https://github.com/company/deploy-tools.invowkmod.git ~1.5.0 --alias deploy

# 2. Add requires to invowkmod.cue manually or verify
cat invowkmod.cue

# 3. Sync to generate lock file
invowk module sync

# 4. Commit the lock file
git add invowkmod.lock.cue
git commit -m "Add module dependencies"

Clone Novo

# On a fresh clone, sync downloads all modules
git clone https://github.com/yourorg/project.git
cd project
invowk module sync

Atualizações Regulares

# Update all modules periodically
invowk module update

# Review changes
git diff invowkmod.lock.cue

# Commit if tests pass
git add invowkmod.lock.cue
git commit -m "Update module dependencies"

Troubleshooting

# List current dependencies to verify state
invowk module deps

# Re-sync if something seems wrong
invowk module sync

# Check commands are available
invowk cmd

Variáveis de Ambiente

VariávelDescrição
INVOWK_MODULES_PATHSobrescreve o diretório de cache de módulos
GITHUB_TOKENAutenticação GitHub
GITLAB_TOKENAutenticação GitLab
GIT_TOKENAutenticação Git genérica

Códigos de Saída

CódigoSignificado
0Sucesso
1Erro geral
1Módulo não encontrado (para remove)
1Nenhum invowkmod.cue encontrado (para sync)
1Falha na resolução de versão
1Falha ao clonar/buscar Git