Valider et visualiser les dépendances. Avec vos règles. Javascript. Manuscrit. CoffeeScript. ES6, CommonJS, AMD.
Cela traverse les dépendances dans n'importe quel projet JavaScript, TypeScript, LifeScript ou CoffeeScript et ...
En tant qu'effet secondaire, il peut générer des graphiques de dépendance dans divers formats de sortie, y compris des visualisations cool, vous pouvez coller sur le mur pour impressionner votre grand-mère.
npm install --save-dev dependency-cruiser
# or
yarn add -D dependency-cruiser
pnpm add -D dependency-cruisernpx depcruise --init Cela examinera un peu dans votre environnement, vous posera des questions et créera un fichier de configuration .dependency-cruiser.js à l'écoute de votre projet 1 2 .
Pour créer un graphique des dépendances dans votre dossier SRC, vous exécuteriez Dependency Cruiser avec Type de sortie dot et exécutez Graphviz Dot 3 au résultat. Dans une doublure:
npx depcruise src --include-only " ^src " --output-type dot | dot -T svg > dependency-graph.svgDépendance-cruiser V12 et plus: Ajouter - Configtion d'option
Bien qu'il ne soit pas nécessaire de la dépendance-cruiser V13 et plus tard, dans V12 et plus
npx depcruise src --include-only " ^src " --config --output-type dot | dot -T svg > dependency-graph.svg
--include-only et d'autres options de ligne de commande dans la documentation de l'interface de ligne de commande.mermaid , json , csv , html ou le texte brut, nous l'avons également couverte. Lorsque vous avez exécuté depcruise --init ci-dessus, la commande a également ajouté des règles à .dependency-cruiser.js qui ont du sens dans la plupart des projets, comme la détection des dépendances circulaires , des dépendances manquantes dans package.json, des orphelins et le code de production qui s'appuie sur Dev ou Oactionsaldependences.
Commencez à ajouter vos propres règles en modifiant ce fichier.
Exemple de règle:
{
"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 srcDépendance-cruiser V12 et plus: Ajouter - Configtion d'option
Bien que cela ne soit pas nécessaire de la dépendance-cruiser V13, dans V12 et plus, vous devrez passer l'option - config.
npx depcruise --config .dependency-cruiser.js src
Cela validera contre vos règles et montrera toute violation dans un format de type Eslint:
Il existe plus de façons de signaler les validations; dans un graphique (comme celui au-dessus de cette lecture) ou dans un fichier html autonome.
depcruise dans le package.json Vous êtes venu au bon endroit :-):
Mit

Fait avec? en Hollande.
Nous utilisons npx dans l'exemple de scripts pour la commodité. Lorsque vous utilisez les commandes dans un script dans package.json il n'est pas nécessaire de les préfixer avec npx . ↩
Si vous ne souhaitez pas utiliser npx , mais à la place pnpx (à partir du pnpm Package Manager) ou yarn - veuillez vous référer à la documentation de cet outil. En particulier, pnpx a une sémantique qui diffère de npx considérablement et que vous voulez être conscient avant de l'utiliser. En attendant: npx devrait fonctionner même lorsque vous avez installé la dépendance avec un gestionnaire de packages différent de npm . ↩
Cela suppose que la commande Graphviz dot est disponible - sur la plupart des systèmes Linux et comparables, ce sera. Dans le cas où ce n'est pas le cas, voir la page de téléchargement de Graphviz pour des instructions sur la façon de l'obtenir sur votre machine. ↩