- الخطوة الأولى هي ثلاثة: التسجيل، ربط حدث، حفظه في مجلد النصوص البرمجية.
- يقوم المضيف بتجميع GraalVM، لذا فإنك تكتب JavaScript حقيقيًا ولا تقوم بتثبيته بنفسك أبدًا.
- النصوص البرمجية يتم إعادة تحميلها بسرعة في ثوانٍ بدون إعادة بناء Java.
- لا يمكن للنص البرمجي استدعاء الكائنات التي يعرضها المضيف من خلال قائمة الوصول المسموح بها.
كتابة أول سكريبت JavaScript لـ GraalVM تتطلب ثلاث خطوات بسيطة: تسجيل السكريبت مع نقطة الدخول الخاصة بالمضيف، وتوصيله بحدث أو وحدة، وحفظه في مجلد السكريبتات حتى يقوم المحرك بتحميله. يعمل المحرك على واجهة برمجة تطبيقات Polyglot الخاصة بـ GraalVM، لذا فإن السكريبت هو JavaScript حقيقي ويتم إعادة تحميله دون الحاجة إلى إعادة تجميع أي كود Java.
أين Opal يناسب
Opal هو تعديل Fabric مع محرك البرمجة النصية GraalVM JavaScript، لذا تنطبق هذه الخطوات مباشرةً. للبدء، راجع وثائق البرمجة النصية
ما تحتاجه أولاً
برنامج مضيف يضمّن المحرك. يتضمن البرنامج المضيف GraalVM JavaScript، ويعرض مجموعة من الكائنات التي يمكن للبرامج النصية استدعاؤها، ويراقب مجلد البرامج النصية. أنت لا تقوم بتثبيت GraalVM بنفسك؛ البرنامج المضيف يضمّنه. أنت تكتب JavaScript عاديًا مقابل الكائنات التي يزودك بها البرنامج المضيف.
معرفة ما تمثل هذه الكائنات يساعد، ولكنك لست بحاجة إلى كتابة أي Java للبدء.
الخطوات الثلاث
ابحث عن مجلد النصوص
يقوم المضيف بتحميل النصوص البرمجية من دليل معروف عند بدء التشغيل. راجع وثائق المضيف للحصول على المسار الدقيق
أنشئ ملفًا نصيًا
أنشئ ملف .js (أو .mjs) جديدًا في تلك المجلد. سيقوم المضيف باستخدامه في المرة القادمة التي يقوم بتحميل البرامج النصية
سجل واربط
في الملف، قم بتسجيل البرنامج النصي مع نقطة الدخول الخاصة بالمضيف، ثم أضف سلوكًا إلى حدث أو عرّف وحدة
مثال بسيط
معظم المضيفين يوفرون للبرنامج نقطة دخول واحدة للتسجيل وعدد قليل من الكائنات الوكيلة التي تربط JavaScript بالبرنامج. الأسماء الدقيقة تعتمد على المضيف، ولكن الشكل هو نفسه. عادةً ما يعلن البرنامج النصي الأول عن نفسه ويتفاعل مع حدث واحد:
// Register the script with the host (names vary by host).
script.register({
name: "hello-world",
version: "1.0.0",
});
// React to an event the host exposes.
script.on("enable", () => {
client.print("Hello from my first script.");
});راجع مرجع واجهة برمجة التطبيقات (API) الخاص بالمضيف للحصول على الأسماء الحقيقية للكائنات والطرق. النقطة هي النمط: تسجيل، ثم ربط حدث أو تحديد وحدة نمطية
تحديث ساخن أثناء العمل
احفظ الملف وأعد تحميل البرامج النصية (أو أعد تشغيل المضيف إذا كان لا يدعم التحميل المباشر). التغيير يظهر دون الحاجة إلى إعادة بناء. هذه الحلقة السريعة هي السبب الرئيسي لكتابة البرامج النصية بدلاً من تجميع المود: البرنامج النصي يتم إعادة تحميله في ثوانٍ، بينما يجب إعادة بناء المود المجمع وإطلاقه من جديد.
| الطريقة | حلقة التكرار | اللغة | متى يكون مناسبًا |
|---|---|---|---|
| برنامج نصي JavaScript لـ GraalVM | تحرير، حفظ، إعادة تحميل | JavaScript | تعديلات سريعة، سلوك مخصص |
| مود مُجمّع | إعادة بناء، إعادة إطلاق | Java أو Kotlin | ميزات أكبر، نقاط ربط أعمق |
ما الذي يمكن للبرامج النصية فعله وما لا يمكنها فعله
يمكن للبرنامج النصي استدعاء الكائنات التي يعرضها المضيف ولا شيء آخر. يعلن المضيف عن الفئات والطرق التي يمكن للبرامج النصية الوصول إليها من خلال قائمة السماح لـ GraalVM Polyglot host-access، والافتراضي هو الرفض. وهذا يحافظ على سلامة البرامج النصية وقابليتها للتنبؤ. إذا لم يتم تعريض الكائن الذي تريده، يجب على المضيف إضافته؛ لا يمكنك تجاوز قائمة السماح من جانب البرنامج النصي.
الأسئلة الشائعة
لا. البرنامج المضيف يضم GraalVM ومحرك JavaScript الخاص به. أنت تكتب ملف JavaScript فقط وتضعه في مجلد النصوص البرمجية
نعم. يدعم المحرك أحدث ميزات ECMAScript، بما في ذلك الوحدات النمطية مع import و export، لذا فأنت لست مقيدًا بمجموعة فرعية قديمة
تأكد من أن الملف موجود في مجلد البرامج النصية للمضيف، وله الامتداد الذي يتوقعه المضيف، ويسجل نفسه في نقطة الدخول الخاصة بالمضيف. غالبًا ما يكون هناك خطأ إملائي في استدعاء التسجيل هو السبب المعتاد
لا. المحرك مُضمَّن داخل جهاز JVM المضيف، لذا يتحدث النص البرمجي الخاص بك إلى البرنامج المضيف، وليس إلى بيئة تشغيل Node.js مستقلة