Doctor
O blume doctor diagnostica problemas de configuração e de conteúdo antes do build — a config, cada página, a versão do Node e os recursos que precisam de um servidor.
O blume doctor analisa o projeto exatamente como o blume build faria e informa o que encontrar, sem gerar nem compilar nada. É a primeira coisa a rodar quando um build falha por um motivo que não é óbvio, e uma verificação barata para manter no CI:
blume doctor
O que ele verifica
- A versão do Node, comparada com o intervalo que o pacote
blumeinstalado suporta, lido do próprio campoenginesdele. Uma versão fora desse intervalo gera um aviso: as coisas podem funcionar, mas essa não é uma combinação que o Blume testa. blume.config.ts, com a mesma validação que um build executa. Uma chave removida ou renomeada falha com uma dica que indica a substituta, em vez de um simples “unrecognized key”.- Cada página de conteúdo e meta de pasta: os diagnósticos que o
blume deve oblume buildexibem ao carregar o projeto (frontmatter inválido, problemas de navegação, alvos de include ausentes e o resto), reunidos em um único relatório. - Recursos que precisam de um servidor em um site configurado para saída estática, como o Ask AI, o servidor MCP ou o proxy embutido do playground Try it: um erro que indica o recurso e o adapter de deploy para o qual você deve trocar (ou, quando um adapter de host está definido com
output: "static", que diz para você remover essa opção). - Pacotes que a sua config precisa e que não estão instalados, como o SDK que um adapter de busca, de fonte de conteúdo ou de Ask AI importa, o pacote
@astrojs/*de um adapter de deploy ou o renderizador para islands Vue ou Svelte: um erro para cada pacote, com o comando de instalação para o seu gerenciador de pacotes. Oblume buildpara na mesma verificação. - Overrides em
components.tsque o Blume não consegue planejar, como uma entrada inline ou computada, ou um import cujo arquivo não existe: um erro para cada um, na linha correspondente. - Uma pasta com formato de versão (
v1.0/) em um site semversionsconfiguradas, que de outra forma seria compilada como conteúdo comum: um aviso apontando parablume version. - Secrets lidos por um recurso habilitado que não estão definidos, como
ALGOLIA_ADMIN_API_KEYouOPENROUTER_API_KEY: um aviso com o nome da variável. O doctor carrega.enve.env.localprimeiro, assim como oblume deve oblume build.
O resumo
Depois dos diagnósticos, o doctor mostra a configuração final que o projeto resolveu. Assim, qualquer diferença entre o que você acha que está configurado e o que o Blume enxerga fica visível num relance: a contagem de páginas, o modo de saída e o adapter de deploy, o provedor de busca, os adapters de referência, analytics e fonte de conteúdo configurados, e se o Ask AI está ativado e qual backend ele usa.
Código de saída e JSON
O doctor sai com código diferente de zero quando há diagnósticos de erro, então ele faz o CI falhar pelos mesmos problemas que fariam um build falhar; os avisos aparecem no relatório, mas não causam falha. A flag --json emite os diagnósticos como JSON no stdout em vez do relatório no terminal, no mesmo formato usado pelo blume validate --json.