Google ZX - برامج نصية شيل مع جافا سكريبت

كيفية كتابة برامج نصية باستخدام Javascript و Node.js

لغة عالمية حقًا

مع ظهور Node.js ، أصبحت Javascript (ومؤخرًا ، Typescript) لغة بارزة لكتابة جميع أنواع النصوص المختلفة. بفضل المكتبات الأساسية المضمنة في كل مثيل Node.js ، يمكن للمطورين أيضًا الوصول إلى العديد من المكالمات إلى نظام التشغيل. ساعدت مرونة Javascript (وإن كان ذلك بتكلفة صيانة أكثر صعوبة) جنبًا إلى جنب مع محرك وقت التشغيل القوي هذا في اكتساب بصمة كبيرة في بيئات الخادم الحالية. بالنسبة لأجهزة UNIX ، هذا يعني أن Javascript تعيش جنبًا إلى جنب مع نصوص Bash-scripts الراسخة ، والتي يتم دعمها محليًا بواسطة نظام التشغيل.

ولكن ماذا لو…

ولكن ماذا لو كان بإمكانك استدعاء أوامر Bash مباشرة داخل نصوص Node.js الخاصة بك؟ قد ترغب في استخدام Javascript لمعظم التطبيقات ، ولكن لديك متطلبات استخدام Bash هنا وهناك لتحقيق هدف.

مع أحد أحدث مشاريع Google ، أداة CLI تسمى ببساطة "zx" ، أصبحت هذه المكتبة متاحة الآن. أفضل للجميع: يمكنك استخدامه على الفور. كل ما تحتاجه هو مثيل Node.js مثبت والذي يساوي أو أعلى من الإصدار 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.

باستخدام علامة الدولار كمعامل متبوعًا باثنين من backticks التي تتضمن رمز Bash الخاص بك ، يمكنك إجراء مكالمات فعلية كما هو الحال في Bash-script.

وإذا قمت بتثبيت "zx" باعتباره تبعية عامة ، فيمكنك استدعاء ملفات Javascript-files الخاصة بك بنفس طريقة Bash-scripts.

المزيد للاستكشاف

تهدف هذه المقالة فقط إلى إعطاء مقدمة في الحزمة. لمزيد من المعلومات ، تحقق من الروابط الموجودة في الملحق لاستكشاف واجهة برمجة التطبيقات بالكامل وجميع الميزات التي يدعمها "zx".

الاقتراحات

ذات صلة

ملحق

اللغات