Google ZX - script di shell con Javascript

Come scrivere script di shell con Javascript e Node.js

Un linguaggio davvero universale

Con l'ascesa di Node.js, Javascript (e recentemente Typescript) è diventato un linguaggio di spicco per scrivere tutti i tipi di script diversi. Grazie alle librerie principali incluse in ogni istanza Node.js, gli sviluppatori hanno anche accesso a varie chiamate al sistema operativo. La flessibilità di Javascript (sebbene con un costo di manutenzione più difficile) combinata con quel potente motore di runtime ha aiutato a ottenere un ampio footprint negli attuali ambienti server. Per le macchine UNIX, questo significa che Javascript convive con i ben consolidati script Bash, che sono supportati nativamente dal sistema operativo.

Ma cosa succede se...

Ma cosa accadrebbe se potessi chiamare direttamente i comandi Bash all'interno dei tuoi script Node.js? Potresti voler usare Javascript per la maggior parte delle implementazioni, ma hai l'obbligo di usare Bash qua e là per raggiungere un obiettivo.

Con uno degli ultimi progetti di Google, uno strumento CLI chiamato semplicemente "zx", è ora disponibile una tale libreria. La cosa migliore: puoi usarlo subito. Tutto ciò di cui hai bisogno è un'istanza Node.js installata uguale o successiva alla versione 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.

Usando il simbolo del dollaro come operatore seguito da due backtick che includono il tuo codice Bash, puoi effettuare chiamate effettive come in uno script Bash.

E se installi "zx" come dipendenza globale, puoi chiamare i tuoi file Javascript allo stesso modo dei tuoi script Bash.

Altro da esplorare

Questo articolo mira solo a fornire un'introduzione al pacchetto. Per ulteriori informazioni, controlla i collegamenti nell'addendum per esplorare completamente l'API e tutte le funzionalità supportate da "zx".