Node.js-Module: Node Licence Finder

Node License Finder – Mehr Durchblick im Lizenzdschungel
Kommentare

Open Source und Lizenzen – das ist ein Thema, das einem normalen Entwickler in der Regel nicht sonderlich viel Spaß macht. Zu undurchsichtig sind oft die zu beachtenden Lizenzbestimmungen. Richtig schlimm wird es, wenn die Rechtsabteilung plötzlich eine genaue Aufstellung über die verwendete Software und deren Lizenzen haben möchte.

Gehen wir zunächst von einer Webapplikation aus, die im Backend auf Node.js setzt und als Datenbank Redis nutzt. Dann hätten wir die MIT-Lizenz für Node.js und die Three Clause BSD License für Redis. Dann wäre da noch der Node Package Manager mit seiner Artistic License 2.0. Das ist allerdings nur die Spitze des Eisbergs. Sobald Sie mit dem Kommando npm install anfangen, beginnen Ihre eigentlichen Probleme. Fügen Sie beispielsweise Express.js hinzu, werden 39 Pakete installiert, und jedes weist seine eigene Lizenz auf.

Braucht Ihre Rechtsabteilung nun eine Aufstellung über alle Lizenzen, die in Ihrer Applikation Anwendung finden, können Sie entweder das node_modules-Verzeichnis durchgehen und die Lizenz jedes Pakets einzeln erfassen oder Sie nutzen eines der zahlreichen Werkzeuge, die es für diesen Fall gibt. Eines dieser Werkzeuge ist der Node License Finder oder kurz nlf.

Installation

Die Installation von nlf erfolgt wie bei fast allen Werkzeugen für Node.js über den npm; und hier, wie bei den meisten Kommandozeilenwerkzeugen üblich, global für Ihr System mit dem Befehl npm install –g nlf. Möchten Sie nlf nicht auf der Kommandozeile, sondern innerhalb Ihrer Applikation einsetzen, reicht eine lokale Installation völlig aus.

Write solid JavaScript Code with TypeScript

mit Thomas Claudius Huber (Trivadis Services AG)

Unlock the Power of JavaScript Decorators

mit Nir Kaufman (500Tech)

JavaScript Days 2017

Architektur mit JavaScript

mit Golo Roden (the native web)

JavaScript Testing in der Praxis

mit Dominik Ehrenberg (crosscan) und Sebastian Springer (MaibornWolff)

Verwendung

Wie schon angedeutet, können Sie den nlf auf zweierlei Arten einsetzen – als Werkzeug auf der Kommandozeile oder als Modul direkt in Ihre Applikation eingebunden. Die gebräuchlichste Einsatzweise ist die Kommandozeile. Hier müssen Sie nur in das Verzeichnis der Applikation wechseln, deren Lizenzinformationen Sie auslesen möchten. Dabei müssen Sie darauf achten, dass das Verzeichnis eine package.json-Datei beinhaltet. Sie ist der Ursprung der Suche des nlf. Dann führen Sie auf der Kommandozeile den Befehl nlf aus. Für eine Installation von Express sieht die (verkürzte) Ausgabe des nlf folgendermaßen aus:

$ nlf
accepts@1.2.13 [license(s): MIT]
├── package.json:  MIT
└── license files: MIT

array-flatten@1.1.1 [license(s): MIT]
├── package.json:  MIT
├── license files: MIT
└── readme files: MIT

Der nlf bedient sich dabei unterschiedlicher Quellen. Wie die Ausgabe nahelegt, sind dies die package.json-Datei des jeweiligen Pakets, die LICENSE-Datei und die README.md-Datei. Den nlf können Sie mit verschiedenen Optionen auf der Kommandozeile weiter beeinflussen (Tabelle 1).springer01

Bei der Verwendung des nlf in einer Applikation müssen Sie das Modul per require einbinden und können dann die find-Methode des Moduls verwenden, um die Lizenzinformationen auszulesen. Im Quellcode sieht das dann so aus:

var nlf = require('nlf');

nlf.find({directory: '.'}, function (err, data) {
    // work with license data
});

Die Lizenzinformationen erhalten Sie im data-Objekt der Callback-Funktion. Diese sind in einer umfangreichen Objektstruktur verpackt, die neben den reinen Lizenzinformationen eine Vielzahl weiterer Informationen wie das Repository oder die Version des Pakets beinhaltet.

Zusammenfassung

Der Node License Finder löst ein Problem, mit dem man nicht häufig in Berührung kommt. Wenn es allerdings auftritt, ist man über eine solch bequeme Lösung froh.

Der nlf ist nicht die einzige Lösung für das Lizenzproblem. Weitere Implementierungen sind der NPM License Checker oder Licensecheck. Die Funktionsweise dieser Werkzeuge ist stets ähnlich.

PHP Magazin

Entwickler MagazinDieser Artikel ist im PHP Magazin erschienen. Das PHP Magazin deckt ein breites Spektrum an Themen ab, die für die erfolgreiche Webentwicklung unerlässlich sind.

Natürlich können Sie das PHP Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Aufmacherbild: Lush green jungle hillside von Shutterstock / Urheberrecht: BonnieBC

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -