A QUICK SUMMARY – FOR THE BUSY ONES
TABLE OF CONTENTS
Im JavaScript-Ökosystem ist das Hinzufügen eines Pakets zu Ihrem Projekt so einfach wie das Ausführen npm i
in deinem Terminal. Die Paketdateien werden aktualisiert, die Abhängigkeiten sind installiert und wir können die Fülle des riesigen NPM-Repositorys genießen. Nun, das ist vielleicht nicht immer der Fall — jedes Paket hat seine eigene Lizenz, und eine Vielzahl von Lizenzen belastet den Entwickler zusätzlich. Dazu können Anforderungen an die Namensnennung, der freie Zugang zum Quellcode oder sogar das Verbot gehören, finanzielle Vorteile zu erhalten.
Jedes dieser Pakete kann auch mehrere Abhängigkeiten haben, die ihre eigenen Lizenzen und Abhängigkeiten haben, ad infinitum. Wenn das Problem der Paketlizenzen von Beginn des Projekts an berücksichtigt oder früh genug erkannt wird, kann die Haftung minimiert werden, indem die Lizenzanforderungen angemessen ausgewählt und verstanden werden. Bei älteren Projekten, bei denen sich niemand mit diesem Problem befasst hat, könnte das Problem weitaus größer sein.
Aus diesem Grund haben wir ein konfigurierbares Tool entwickelt, das sich auf die Prüfung von Projektabhängigkeiten konzentriert - Lizenzprüfer CLI, oder LAC.
JavaScript-Projekte verwenden eine Vielzahl von Paketmanagern, von denen jeder seine eigene Art hat, mit Abhängigkeiten umzugehen. Um LAC so universell wie möglich zu gestalten, haben wir dafür gesorgt, dass es mehrere Paketmanager unterstützt, darunter npm, yarn und pnpm.
Für npm nutzen wir Baumpfleger, eine Bibliothek, die entwickelt wurde, um Abhängigkeitsbäume strukturiert und effizient zu durchqueren und zu analysieren. Arborist ermöglicht es uns, Informationen über direkte und transitive Abhängigkeiten zu sammeln und so sicherzustellen, dass wir über eine vollständige Liste der in einem Projekt verwendeten Pakete verfügen.
Für yarn und pnpm verfolgen wir einen anderen Ansatz und verwenden ihre integrierten Befehle, um Abhängigkeitsdaten abzurufen. Insbesondere verwenden wir Garnliste
für Yarn-Projekte und pnpm ls
für pnpm-verwaltete Repositorys. Diese Befehle bieten strukturierte Ausgaben, die es uns ermöglichen, relevante Informationen über installierte Pakete und deren Versionen zu extrahieren. So wird sichergestellt, dass LAC Projekte unabhängig vom verwendeten Paketmanager nahtlos analysieren kann.
Sobald wir alle installierten Pakete identifiziert haben, besteht der nächste Schritt darin, ihre jeweiligen Lizenzen zu ermitteln. Dies ist nicht immer einfach, da Lizenzen an mehreren Stellen innerhalb eines Pakets deklariert werden können. LAC verfolgt einen umfassenden Ansatz, indem er die folgenden Quellen überprüft:
Lizenz
Feld in ihrem Paket.json
und ist damit der erste und einfachste Ort, an dem man nachschauen kann.Bei der Suche nach LIZENZ
und LESEN SIE MICH
Dateien, wir verwenden Textähnlichkeitsberechnungen, um Lizenztexte zu erkennen, auch wenn sie nicht exakt den vordefinierten Formaten entsprechen. Dies hilft uns, Lizenzen, die unterschiedlich ausgedrückt werden oder geringfügige Textabweichungen enthalten, korrekt zu klassifizieren.
Eine der Kernstärken von LAC ist die hohe Konfigurierbarkeit. Jedes Projekt hat seine eigenen Lizenzanforderungen, und wir wollten sicherstellen, dass unser Tool eine Vielzahl von Anforderungen erfüllt. LAC bietet die folgenden Konfigurationsoptionen:
Durch dieses Maß an Anpassung stellt LAC sicher, dass Teams ihre Abhängigkeiten so prüfen können, dass sie ihren internen Richtlinien und gesetzlichen Anforderungen entsprechen.
Um License Auditor CLI so flexibel wie möglich zu gestalten, bieten wir mehrere Ausgabeoptionen. Benutzer können wählen zwischen:
Durch die Unterstützung sowohl interaktiver als auch automatisierter Workflows fügt sich LAC nahtlos in moderne Entwicklungsumgebungen ein.
Da Softwareprojekte immer komplexer werden, wird die Verwaltung von Abhängigkeiten zu einer immer wichtigeren Aufgabe. Das Risiko, rechtlich problematische Lizenzen in ein Projekt einzuführen, kann erheblich sein, insbesondere bei der Arbeit mit großen Abhängigkeitsbäumen. Mithilfe von Tools wie License Auditor CLI können Entwickler einen proaktiven Ansatz zur Einhaltung der Lizenzbestimmungen verfolgen und so sicherstellen, dass ihre Projekte rechtlich einwandfrei und frei von unerwarteten Verpflichtungen bleiben.
Durch seine umfassende Paketanalyse, flexible Konfigurationsoptionen und mehrere Ausgabeformate bietet LAC eine robuste Lösung für die Herausforderung der Prüfung von Abhängigkeitslizenzen. Ganz gleich, ob Sie ein neues Projekt starten oder eine bestehende Codebasis überprüfen, es ist wichtig, stets auf Softwarelizenzen zu achten — und zwar mit Lizenzprüfer CLI, es ist einfacher als je zuvor.
Our promise
Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.
Authors
Popular this month