Valóban egyetemes nyelv
A Node.js térhódításával a Javascript (és a közelmúltban a Typescript) is kiemelkedő nyelvvé vált mindenféle különféle szkriptek írására. A minden Node.js-példányhoz tartozó alapkönyvtáraknak köszönhetően a fejlesztők hozzáférhetnek az operációs rendszer különböző hívásaihoz is. A Javascript rugalmassága (bár a nehezebb karbantartás költségeivel együtt) az erőteljes futásidejű motorral együtt nagy lábnyomot nyert a jelenlegi kiszolgálói környezetben. A UNIX gépeknél ez azt jelenti, hogy a Javascript a jól bevált Bash-szkriptek mellett él, amelyeket az operációs rendszer natív módon támogat.
De mi van, ha…
De mi lenne, ha közvetlenül hívhatná a Bash-parancsokat a Node.js-szkriptjeiben? Érdemes a Javascriptet használni a legtöbb megvalósításhoz, de meg kell követelnie a Bash használatát itt-ott egy cél eléréséhez.
A Google egyik legújabb projektjével, az egyszerűen „zx” nevű CLI-eszközzel már elérhető egy ilyen könyvtár. A legjobb az egészben: azonnal felhasználhatja. Csak egy telepített Node.js példányra van szüksége, amely megegyezik a 14. verzióval vagy magasabb.
// 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.
Ha a dollárjelet operátorként használja, majd két olyan háttérjel veszi át, amelyek tartalmazzák az Ön Bash-kódját, akkor tényleges hívásokat indíthat, mint egy Bash-szkriptben.
Ha pedig a "zx" -t globális függőségként telepíti, akkor a Javascript-fájlokat ugyanúgy hívhatja, mint a Bash-szkriptjeit.
Több felfedezésre váró
Ez a cikk csak a csomag bevezetését célozza. További információért tekintse meg a függelékben található linkeket, hogy teljes körűen felfedezze az API-t és a „zx” által támogatott összes funkciót.