Eine wahrhaft universelle Sprache
Mit dem Aufkommen von Node.js ist Javascript (und neuerdings auch Typescript) zu einer prominenten Sprache geworden, um alle möglichen unterschiedlichen Skripte zu schreiben. Dank der in jeder Node.js-Instanz enthaltenen Kernbibliotheken haben Entwickler auch Zugriff auf verschiedene Aufrufe des Betriebssystems. Die Flexibilität von Javascript (wenn auch mit härteren Wartungskosten) in Kombination mit dieser leistungsstarken Laufzeit-Engine verhalf ihm zu einer großen Präsenz in aktuellen Serverumgebungen. Für UNIX-Rechner bedeutet dies, dass Javascript neben den etablierten Bash-Skripten lebt, die nativ vom Betriebssystem unterstützt werden.
Aber was wenn…
Aber was wäre, wenn Sie Bash-Befehle direkt in Ihren Node.js-Skripten aufrufen könnten? Möglicherweise möchten Sie für die meisten Implementierungen Javascript verwenden, müssen jedoch hier und da Bash verwenden, um ein Ziel zu erreichen.
Mit einem der neuesten Projekte von Google, einem CLI-Tool, einfach „zx“ genannt, steht nun eine solche Bibliothek zur Verfügung. Das Beste daran: Sie können es sofort verwenden. Sie benötigen lediglich eine installierte Node.js-Instanz, die mindestens Version 14 entspricht.
// Your JS-file. You can either use
// the .js-suffix or the alternative
// .mjs-suffix, which allows the global
// usage of 'await' when used with 'zx'.
// The nessary shebang, as in Bash-scripts
#!/usr/bin/env zx
// A simple demonstration on how to
// call Bash-command inside your JS.
// Here, we log the current working directory.
await $`echo $PWD`;
// Now to call your file, you can
// simply use 'npx', the node package
// executor that comes with NPM.
npx zx ./demo.mjs
// For more examples, check out the
// repo where Google provides some
// more real-world use cases.
Indem Sie das Dollarzeichen als Operator gefolgt von zwei Backticks verwenden, die Ihren Bash-Code enthalten, können Sie echte Anrufe wie in einem Bash-Skript tätigen.
Und wenn Sie "zx" als globale Abhängigkeit installieren, können Sie Ihre Javascript-Dateien genauso aufrufen wie Ihre Bash-Skripte.
Mehr zu erkunden
Dieser Artikel soll nur eine Einführung in das Paket geben. Weitere Informationen finden Sie in den Links im Anhang, um die API und alle von „zx“ unterstützten Funktionen vollständig zu erkunden.