Skip to content

deco-reconcile sai com 0 sem fazer nada quando invocado via npx #515

Description

@aka-sacci-ccr

Modo de falha

deco-reconcile invocado pelo bin publicado sai com código 0, não imprime nada e não cria .reconcile/. Para quem está rodando uma reconciliação, isso é indistinguível de "não havia nada a conciliar" — e nesse caso havia (1 arquivo).

Repro, com @decocms/blocks-cli@7.54.0:

npx -p @decocms/blocks-cli deco-reconcile \
  --source /path/to/site-fresh \
  --target /path/to/site-tanstack \
  --snapshot <sha> --target-snapshot <sha> --verbose
# (sem saída)
# EXIT=0

Causa

Última linha de packages/blocks-cli/scripts/reconcile.ts:

if (process.argv[1] && /reconcile\.ts$/.test(process.argv[1])) main();

O npm/npx expõe o bin como symlink node_modules/.bin/deco-reconcile. O shebang #!/usr/bin/env tsx executa com process.argv[1] = o caminho do symlink, que não casa /reconcile\.ts$/. main() nunca roda.

O guard só passa quando o arquivo é invocado pelo caminho literal — que é como os testes e o desenvolvimento local rodam, então passa despercebido.

Contorno

npx tsx packages/blocks-cli/scripts/reconcile.ts --source ... --target ...

Sugestão

Trocar o guard por uma comparação de realpath do módulo em vez de regex sobre o basename de argv[1], ou simplesmente chamar main() incondicionalmente (o arquivo não é reexportado por exports no package.json — só existe como bin).

Vale checar os outros bins de packages/blocks-cli/package.json que usem o mesmo padrão de guard.

Onde apareceu

Rodada de reconciliação deco-sites/zee-tanstack (origem Deno 429e20e..91b36b2) — https://github.com/deco-sites/zee-tanstack/pull/46

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions