Validar e visualizar dependências. Com suas regras. JavaScript. TypeScript. CoffeeScript. ES6, Commonjs, AMD.
Isso percorre as dependências em qualquer projeto JavaScript, TypeScript, LiveScript ou CoffeeScript e ...
Como efeito colateral, ele pode gerar gráficos de dependência em vários formatos de saída, incluindo visualizações legais, você pode grudar na parede para impressionar sua avó.
npm install --save-dev dependency-cruiser
# or
yarn add -D dependency-cruiser
pnpm add -D dependency-cruisernpx depcruise --init Isso olhará um pouco em seu ambiente, fará algumas perguntas e criará um arquivo de configuração .dependency-cruiser.js em sintonia com o seu projeto 1 2 .
Para criar um gráfico das dependências na sua pasta SRC, você executaria o Cruiser de dependência com o dot de saída e executaria o GraphViz Dot 3 no resultado. Em um revestimento:
npx depcruise src --include-only " ^src " --output-type dot | dot -T svg > dependency-graph.svgdependência-cruzador v12 e mais antigo: Adicionar-Config opção
Embora não seja necessário do V13 de dependência-cruzador e posterior, no V12 e mais antigo, você terá que passar na opção-Config para fazê-lo encontrar o arquivo de configuração .Dependência-cruiser.js:
npx depcruise src --include-only " ^src " --config --output-type dot | dot -T svg > dependency-graph.svg
--include-only e outras opções de linha de comando na documentação da interface da linha de comando.mermaid , json , csv , html ou texto simples, também a cobrimos. Quando você executou depcruise --init acima, o comando também adicionou algumas regras ao .dependency-cruiser.js que fazem sentido na maioria dos projetos, como detectar dependências circulares , dependências ausentes no package.json, órfãs e código de produção depender de dev ou opcionalDependências.
Comece a adicionar suas próprias regras aprimorando esse arquivo.
Regra de amostra:
{
"forbidden" : [
{
"name" : " not-to-test " ,
"comment" : " don't allow dependencies from outside the test folder to test " ,
"severity" : " error " ,
"from" : { "pathNot" : " ^test " },
"to" : { "path" : " ^test " }
}
]
}npx depcruise srcdependência-cruzador v12 e mais antigo: Adicionar-Config opção
Embora não seja necessário do V13 de dependência-cruzador, no V12 e mais antigo, você terá que passar na opção-Config para fazê-lo encontrar o arquivo de configuração .Dependência-cruiser.js:
npx depcruise --config .dependency-cruiser.js src
Isso validará contra suas regras e mostrará violações em um formato semelhante a Eslint:
Existem mais maneiras de relatar validações; em um gráfico (como o em cima deste readme) ou em um arquivo html autônomo.
depcruise no package.json Você veio ao lugar certo :-):
Mit

Feito com? na Holanda.
Estamos usando npx nos scripts de exemplo por conveniência. Quando você usa os comandos em um script no package.json não é necessário prefixá -los com npx . ↩
Se você não deseja usar npx , mas, em vez disso, pnpx (do gerenciador de pacotes pnpm ) ou yarn - consulte a documentação dessa ferramenta. Particularmente, pnpx possui semântica que diferem do npx bastante significativamente e que você deseja conhecer antes de usá -lo. Nesse meio tempo: npx deve funcionar mesmo quando você instalou a dependência com um gerenciador de pacotes diferente do npm . ↩
Isso pressupõe que o comando GraphViz dot esteja disponível - na maioria dos sistemas Linux e comparável, este será. Caso não esteja, consulte a página de download do GraphViz para obter instruções sobre como obtê -lo em sua máquina. ↩