'N Regte universele taal
Met die opkoms van Node.js het Javascript (en onlangs ook Typescript) 'n prominente taal geword om allerhande verskillende skrifte te skryf. Danksy die kernbiblioteke wat by elke Node.js-instansie ingesluit is, het ontwikkelaars ook toegang tot verskillende oproepe na die bedryfstelsel. Die soepelheid van Javascript (alhoewel die koste van moeiliker onderhoud) gekombineer met die kragtige runtime-enjin het gehelp om 'n groot voetspoor te kry in die huidige bedieneromgewings. Vir UNIX-masjiene beteken dit dat Javascript langs die goed gevestigde Bash-skrifte woon, wat oorspronklik deur die bedryfstelsel ondersteun word.
Maar wat as ...
Maar sê nou u kan Bash-opdragte direk in u Node.js-skrifte noem? U mag Javascript gebruik vir die meeste implementerings, maar u moet Bash hier en daar gebruik om 'n doel te bereik.
Met een van Google se nuutste projekte, 'n CLI-instrument wat eenvoudig 'zx' genoem word, is so 'n biblioteek nou beskikbaar. Die beste van alles: u kan dit dadelik gebruik. Al wat u benodig, is 'n geïnstalleerde Node.js-instansie wat gelyk is aan of hoër as weergawe 14.
// 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.
Deur die dollarteken te gebruik as 'n operateur, gevolg deur twee backticks wat u Bash-kode insluit, kan u werklike oproepe maak soos in 'n Bash-script.
En as u 'zx' as 'n globale afhanklikheid installeer, kan u u Javascript-lêers op dieselfde manier as u Bash-skrifte noem.
Meer om te verken
Hierdie artikel is slegs daarop gemik om 'n inleiding in die pakket te gee. Vir meer inligting, kyk na die skakels in die addendum om die API en al die funksies wat "zx" ondersteun, volledig te verken.