Nützliche und interessante Bibliotheken
Dauer: 30 Minuten
Ziel: Vorstellung einiger Bibliotheken, die weitere Möglichkeiten aufzeigen
Die hier vorgestellten Bibliotheken könnten für das Projekt nützlich sein und dürfen verwendet werden.
In replit.com können Bibliotheken im Bereich Packages (das Würfel-Symbol) gesucht und dem Projekt hinzugefügt werden.
In Node.js werden Bibliotheken mit dem
Terminal-Befehl npm install
für das Projekt
installiert. Hierbei muss der Name der Bibliothek
angegeben werden, z.B. node-localstorage
für
localStorage
:
npm install node-localstorage
Ausgabe im Terminal
In der textbasierten Ausgabe im Terminal lassen sich auch Farben definieren, siehe auch die Lektion zur Ausgabe.
Mit einer Hilfsbibliothek wie z.B. PicoColors können Farben relativ leicht in der Textausgabe gesetzt werden. Dazu ein Beispiel (zuvor muss natürlich PicoColors installiert werden):
import pc from 'picocolors';
console.log(`${pc.red("Hallo")} und ${pc.green("Willkommen!")}`);
Dies ergibt die folgende Ausgabe:
Infos zur Verwendung: https://github.com/alexeyraspopov/picocolors
Alternativen:
- https://github.com/chalk/chalk
- https://github.com/medikoo/cli-color
- https://github.com/webdiscus/ansis
- und bestimmt gibt es noch weitere…
Eingabe im Terminal
Die Eingabe mit prompt
funktioniert nur
in replit.com und nicht in Projekten, die auf
dem eigenen Rechner mit Node.js umgesetzt werden.
Außerdem ist prompt
auf die Eingabe von
Text beschränkt.
Um für die Eingabe mehr Möglichkeiten zu erhalten, kann dem Projekt eine zusätzliche Bibliothek als Abhängigkeit hinzugefügt werden.
Synchrone prompt-Bibliotheken
Mit „synchron“ ist hier gemeint, dass der Code bei der Aufforderung zur Eingabe „anhält“. Diese Art der Programmierung ist deutlich einfacher nachzuvollziehen, als die asynchrone Vorgehensweise, die im nächsten Abschnitt beschrieben wird.
Bisher haben wir dafür prompt-sync eingesetzt. Allerdings wurde diese Bibliothek schon länger nicht mehr weiterentwickelt.
Asynchrone prompt-Bibliotheken
Es gibt einige weitere Bibliotheken, um die Eingabe
in Node.js/replit umzusetzen. Diese bieten oftmals
zusätzliche Funktionalitäten. Jedoch erfolgt der Umgang
mit diesen Bibliotheken im Code auf asynchrone Weise mit
Promises bzw.
async/await
.
Hierdurch ist die Verwendung dieser Bibliotheken eventuell
komplexer und schwerer zugänglich als der Umgang mit
synchronen Bibliotheken wie prompt-sync
.
Es folgen eine paar Beispiel-Projekte:
- https://github.com/terkelg/prompts
- https://github.com/SBoudrias/Inquirer.js
- https://github.com/cronvel/terminal-kit
- https://github.com/vadimdemedes/ink
Hilfsbibliotheken in JavaScript
Faker ist eine JavaScript-Bibliothek, die zufällige Daten für verschiedene Anwendungsfälle erzeugen kann.
In JavaScript-Projekten wird sowohl in
Webanwendungen für den Browser als auch in
Node.js häufig die Hilfsbibliothek
Lodash eingesetzt.
Mit Lodash stehen einige nützliche Funktionen
bereit, z.B. sample
um zufällige Elemente
eines Arrays zu erhalten:
import _ from "lodash";
let names = ['Alice', 'Bob', 'Charlie', 'Donna',
'Eva', 'Frank', 'Geri', 'Harry', 'John'];
let randomName = _.sample(names);
console.log(randomName);
// --> zufälliger Name wird ausgegeben
Infos zu Lodash: https://lodash.com
Es finden sich viele weitere Hilfsbibliotheken im Umfeld von JavaScript, z.B. für den Umgang mit Datumswerten:
- https://date-fns.org/
- https://moment.github.io/luxon/ (Nachfolger von momentjs, das nicht weiterentwickelt wird)
- https://day.js.org (gleiche API wie momentjs aber kompakter)
Link-Sammlung zu JavaScript („Awesome List“): https://github.com/sorrycc/awesome-javascript