Validieren und visualisieren Sie Abhängigkeiten. Mit deinen Regeln. JavaScript. Typoskript. Coffeescript. ES6, Commonjs, AMD.
Dies läuft durch die Abhängigkeiten in jedem Projekt JavaScript, Typecript, Livescript oder Coffeescript und ...
Als Nebeneffekt können Sie Abhängigkeitsgrafiken in verschiedenen Ausgangsformaten erzeugen, einschließlich cooler Visualisierungen, Sie können an der Wand kleben, um Ihre Oma zu beeindrucken.
npm install --save-dev dependency-cruiser
# or
yarn add -D dependency-cruiser
pnpm add -D dependency-cruisernpx depcruise --init Dies wird sich in Ihrer Umgebung ein wenig umsehen, Ihnen einige Fragen stellen und eine Konfigurationsdatei .dependency-cruiser.js erstellen.
Um ein Diagramm der Abhängigkeiten in Ihrem SRC -Ordner zu erstellen, führen Sie den Abhängigkeits -Cruiser mit Ausgangstyp dot und GraphViz DOT 3 für das Ergebnis aus. In einem Ein -Liner:
npx depcruise src --include-only " ^src " --output-type dot | dot -T svg > dependency-graph.svgAbhängigkeitskruiser v12 und älter: Option-Konfiguration hinzufügen
Obwohl nicht von der Abhängigkeits-Kriminalität V13 und später erforderlich ist, müssen Sie in v12 und älter die Option-Konfiguration übergeben, damit die Konfigurationsdatei.
npx depcruise src --include-only " ^src " --config --output-type dot | dot -T svg > dependency-graph.svg
--include-only und anderen Befehlszeilenoptionen tun können.mermaid , json , csv , html oder einfacher Text steht, haben wir sie auch abgedeckt. Wenn Sie depcruise --init oben lief, wurde der Befehl auch einige Regeln zu .dependency-cruiser.js hinzugefügt, die in den meisten Projekten sinnvoll sind, z. B. Erkennung kreisförmiger Abhängigkeiten , Abhängigkeiten, die in Package.json, Orphans und Produktionscode auf Dev- oder OptionaldePendenzen fehlen .
Fügen Sie Ihre eigenen Regeln hinzu, indem Sie diese Datei optimieren.
Beispielregel:
{
"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 srcAbhängigkeitskruiser v12 und älter: Option-Konfiguration hinzufügen
Obwohl nicht von der Abhängigkeits-Kriminalität V13 erforderlich ist, müssen Sie in v12 und älter die Option-Konfiguration übergeben, damit die Konfigurationsdatei.
npx depcruise --config .dependency-cruiser.js src
Dies wird gegen Ihre Regeln bestätigt und Verstöße in einem Eslint-ähnlichen Format angezeigt:
Es gibt mehr Möglichkeiten, Validierungen zu melden. in einem Diagramm (wie dem oben auf diesem Readme) oder in einer selbsthaltigen html Datei.
depcruise -Skript im Paket.json Du bist am richtigen Ort gekommen :-):
MIT

Gemacht mit? in Holland.
Wir verwenden npx in den Beispielskripten für die Bequemlichkeit. Wenn Sie die Befehle in einem Skript in package.json verwenden, ist es nicht erforderlich, sie mit npx zu präfixen. ↩
Wenn Sie npx nicht verwenden möchten, sondern pnpx (aus dem pnpm -Paketmanager) oder yarn , lesen Sie bitte die Dokumentation dieses Tools. Insbesondere pnpx verfügt über eine Semantik, die sich von npx erheblich unterscheidet und die Sie vor der Verwendung bewusst sein möchten. In der Zwischenzeit: npx sollte auch dann funktionieren, wenn Sie die Abhängigkeit mit einem anderen Paketmanager von npm installiert haben. ↩
Dies setzt voraus, dass der Befehl graphviz dot verfügbar ist - auf den meisten Linux und vergleichbaren Systemen wird dies sein. Für den Fall, dass dies nicht der Fall ist, finden Sie in Graphviz 'Download -Seite Anweisungen zum Erhalten auf Ihrem Computer. ↩