Pular para o conteúdo principal
Versão: 0.13.0

Dependências de Comandos (cmds)

Dependências de comandos (depends_on.cmds) são uma verificação de descoberta: elas garantem que comandos Invowk™ específicos estejam disponíveis (descobertos) antes do seu comando executar.

O Invowk não executa esses comandos automaticamente.

Para comandos dentro de módulos, isso também é uma verificação estática de acesso. Um comando de módulo pode depender de comandos do mesmo módulo, de módulos instalados globalmente em ~/.invowk/cmds ou de dependências diretas declaradas no invowkmod.cue:requires raiz. Comandos de módulos não relacionados ou dependências transitivas não declaradas falham na validação mesmo que estejam descobertos de outra forma. Comandos do invowkfile raiz são verificados apenas por descoberta.

Uso Básico

depends_on: {
cmds: [
{alternatives: ["build"]}
]
}

Se nenhuma das alternativas puder ser encontrada, o Invowk falha com um erro de dependência de Missing Commands.

Nomes e Resolução

  • Mesmo invowkfile: referencie comandos pelo nome (ex.: "build", "test unit").
  • Módulos: use o nome com prefixo do módulo (ou alias) como aparece no invowk cmd (ex.: "shared generate-types").

Alternativas (Semântica OU)

depends_on: {
cmds: [
// Either command being discoverable satisfies this dependency
{alternatives: ["build debug", "build release"]},
]
}

A dependência é satisfeita se qualquer alternativa for descoberta.

Para comandos de módulo, a alternativa escolhida também deve passar pela verificação estática de acesso descrita acima.

Múltiplos Requisitos (Semântica E)

depends_on: {
cmds: [
{alternatives: ["build"]},
{alternatives: ["test unit", "test integration"]},
]
}

Todas as entradas devem ser satisfeitas.

Requisitos entre Invowkfiles

depends_on: {
cmds: [{alternatives: ["@shared generate-types"]}]
}

Isso é especialmente útil quando seu invowkfile espera que outro invowkfile/módulo esteja instalado.

Se você quer workflows…

Se você quer que deploy realmente execute build antes, faça isso explicitamente no seu script (ou crie um comando dedicado de “workflow”). O Invowk não orquestra execução de comandos via depends_on.cmds.

invowk cmd build && invowk cmd deploy

Próximos Passos