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

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 e resolvidas no invowkmod.lock.cue. Comandos de módulos não relacionados, entradas de lock desatualizadas ou dessincronizadas, 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 uma referência qualificada por fonte (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.

Se uma dependência de comando for declarada em requires, mas ainda falhar na verificação de acesso, execute invowk module sync para que o lock file registre o ID de módulo estável e o namespace de fonte de comando da dependência.

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