CommonJS
CommonJS هو مشروع لتوحيد نظام الوحدات النمطية للغة JavaScript خارج متصفحات الويب (على سبيل المثال على خوادم الويب أو تطبيقات سطح المكتب الأصلية ).
تُستخدم مواصفات CommonJS لكيفية عمل الوحدات البرمجية على نطاق واسع اليوم في جافا سكريبت من جانب الخادم باستخدام Node.js. [ 1 ] كما تُستخدم أيضًا في جافا سكريبت من جانب المتصفح، ولكن يجب تضمين هذا الكود مع مُترجم برمجي لأن المتصفحات لا تدعم CommonJS. [ 1 ] أما مواصفات الوحدات البرمجية الرئيسية الأخرى المستخدمة فهي مواصفات وحدات ECMAScript (ES) (وحدات ES6 المعروفة أيضًا باسم وحدات ES2015). [ 2 ] يمكن تمييز CommonJS من خلال استخدام الدالة `console.js` require()و`console.js` module.exports، بينما تستخدم وحدات ES عبارات import`console.js` و` exportconsole.js` لوظائف مشابهة (وإن لم تكن متطابقة).
تاريخ
بدأ المشروع من قبل مهندس موزيلا كيفن دانجور في يناير 2009 وكان اسمه في البداية ServerJS . [ 3 ]
ما أصفه هنا ليس مشكلة تقنية. إنها مسألة تجمع الناس واتخاذهم قراراً بالتقدم والبدء في بناء شيء أكبر وأكثر روعة معاً.
— كيفن دانجور [ 3 ]
في أغسطس 2009، أُعيد تسمية المشروع إلى CommonJS لإظهار نطاق تطبيق واجهات برمجة التطبيقات (APIs) الأوسع . [ 4 ] تُنشأ المواصفات وتُعتمد في عملية مفتوحة. ولا تُعتبر المواصفات نهائية إلا بعد إتمامها من قِبل عدة تطبيقات. [ 5 ] لا يرتبط CommonJS بمجموعة ECMA International TC39 العاملة على ECMAScript ، ولكن بعض أعضاء TC39 يشاركون في المشروع. [ 6 ]
تحديد
تتضمن قائمة المواصفات ما يلي: [ 7 ]
حاضِر
- Modules/1.0 (تم استبدالها بـ Modules/1.1)
- الوحدات/1.1
- الوحدات/1.1.1
- الحزم/1.0
- النظام/1.0
المقترحات
تتجاوز المقترحات مجرد الوحدات البرمجية، إذ تهدف إلى تحديد مجموعة من واجهات برمجة التطبيقات (APIs) المفيدة لتطبيقات جافا سكريبت غير المخصصة للويب، مع توحيد أسماء الحزم لضمان التوافقية داخل النظام البيئي. ويتداخل هذا الهدف أحيانًا مع أهداف اللجنة الفنية 39 (TC39)، وقد أُدرجت بالفعل بعض أجزاء هذه المقترحات، مثل الوعود (Promises)، في معيار ECMAScript نفسه.
الجزء الذي يلي الشرطة المائلة هو رقم الإصدار. عندما يكون هناك نقاش حول اقتراح ما، يُخصص لكل اقتراح على حدة (بما في ذلك التعديلات المتسلسلة من نفس المؤلف) حرف جديد. وعندما يُعرف التوجه الرئيسي، يبدأ تخصيص أرقام له.
- ثنائي/ب، ف
- وحدة التحكم (مُحولة من الويب)
- التشفيرات/أ، ج
- التشفير/أ
- عميل HTTP/ب
- IO/A
- نظام الملفات/أ، أ/0
- الوحدات/غير المتزامنة/أ
- الوحدات/التعريف غير المتزامن
- Modules/LoaderPlugin
- الوحدات/الموارد
- الوحدات/العمليات غير المتزامنة البسيطة
- الوحدات/النقل/ب، ج، د، هـ
- الوحدات/الأغلفة
- الوحدات/التغليفات - التبعيات الصريحة
- الحزم/1.1
- الحزم/التعريف غير المتزامن
- الحزم/الخرائط/أ، ب، ج، د
- الوعود/ب، د
- اختبار الوحدة/ب، 1.0، 1.0.1
التطبيقات
- العقدة المشتركة [ 8 ]
- مُجمِّع CommonJS - أداة سطر أوامر تجعل وحدات Common JS مناسبة للاستخدام داخل المتصفح [ 9 ]
- CommonJS for PHP - تطبيق CommonJS خفيف الوزن لـ PHP 5.3+ [ 10 ]
- CouchDB [ 11 ]
- Flusspferd [ 12 ]
- GPSEE [ 13 ]
- حقيبة نفاثة
- منصة جوينت الذكية [ 14 ]
- JSBuild [ 15 ]
- MongoDB [ 16 ]
- ناروال (منصة جافا سكريبت) [ 17 ]
- Node.js (جزئي؛ متزامن) [ 18 ]
- المثابرة [ 19 ]
- محمل جافا سكريبت PINF [ 20 ]
- تُنفذ مكتبة PythonMonkey بيئة CommonJS Modules/1.1.1 التي يمكنها تحميل الوحدات المكتوبة بلغة JavaScript أو Python (أو كليهما). [ 21 ]
- RingoJS [ 22 ]
- SilkJS [ 23 ]
- SproutCore [ 24 ]
- TeaJS [ 25 ]
- واكاندا [ 26 ]
- XULJet [ 27 ]
- وحدة QUnit
انظر أيضاً
- تعريف الوحدة غير المتزامنة (AMD)، وهو بنية أخرى لوحدات جافا سكريبت
- مقارنة حلول جافا سكريبت من جانب الخادم
- نموذج كائن المستند (DOM)، وهو واجهة برمجة تطبيقات (API) من جانب العميل لمتصفح الويب ، متوفرة عادةً بلغة جافا سكريبت
- JSGI
مراجع
- 1 2 إريك إليوت (26 يونيو 2014). برمجة تطبيقات جافا سكريبت: بنية ويب قوية باستخدام Node وHTML5 ومكتبات جافا سكريبت الحديثة . دار نشر أورايلي ميديا، ص 87 وما بعدها. ISBN 978-1-4919-5027-2.
- ↑ ماريو كاسيارو؛ لوتشيانو مامينو (29 يوليو 2020). أنماط تصميم Node.js: تصميم وتنفيذ تطبيقات Node.js عالية الجودة باستخدام أنماط وتقنيات مثبتة، الطبعة الثالثة . دار نشر Packt. ص 62. ISBN 978-1-83921-044-0.
- 1 2 "ما يحتاجه جافا سكريبت من جانب الخادم ·" . www.blueskyonmars.com . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "CommonJS: مكتبة جافا سكريبت القياسية" . www.commonjs.org . مؤرشف من الأصل بتاريخ 13 نوفمبر 2017. تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ "عملية الاقتراح - ويكي مواصفات CommonJS" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "CommonJS: السنة الأولى ·" . www.blueskyonmars.com . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "مكتبة جافا سكريبت القياسية" . CommonJS. مؤرشف من الأصل بتاريخ 28-05-2014 . تم الاطلاع عليه بتاريخ 28-05-2014 .
- ↑ "olegp/common-node @ GitHub" . olegp.github.io . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "مُجمِّع CommonJS - يجعل وحدات Common JS الخاصة بك مناسبة للاستخدام داخل المتصفح" . dsheiko.github.io . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "GitHub - DrBenton/CommonJSForPHP: تطبيق بسيط لمواصفات CommonJS لـ PHP 5.3+" . GitHub . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ "Implementations/CouchDB - CommonJS Spec Wiki" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "Flusspferd - منصة CommonJS | روابط جافا سكريبت للغة C" . مؤرشف من الأصل بتاريخ 28 يناير 2013. تم الاطلاع عليه بتاريخ 19 سبتمبر 2017 .
- ↑ "التنفيذات/GPSEE - ويكي مواصفات CommonJS" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "التنفيذات/الذكية - ويكي مواصفات CommonJS" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "الصفحة الرئيسية - JSBuild" . مؤرشف من الأصل في 4 يناير 2011.
- ↑ "قاعدة البيانات الأكثر شيوعًا للتطبيقات الحديثة" . MongoDB . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ "Implementations/Narwhal - CommonJS Spec Wiki" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "Implementations/node.js - CommonJS Spec Wiki" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "التنفيذات/المثابرة - ويكي مواصفات CommonJS" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "GitHub - pinf/loader-js: استكشاف مبكر متوقف" . GitHub . 30 يوليو 2021. تم الاسترجاع في 5 أغسطس 2021 .
- ↑ "Distributive-Network/PythonMonkey: محرك جافا سكريبت من موزيلا سبايدر مونكي مُدمج في آلة بايثون الافتراضية، ويستخدم محرك بايثون لتوفير بيئة استضافة جافا سكريبت" . جيت هاب . 2023-07-07 . تم الاطلاع عليه بتاريخ 2023-07-10 .
- ↑ "Implementations/RingoJS - CommonJS Spec Wiki" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "موقع SilkJS على الويب" . مؤرشف من الأصل بتاريخ 12-09-2017 . تم الاطلاع عليه بتاريخ 19-10-2012 .
- ↑ "Implementations/SproutCore - CommonJS Spec Wiki" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ "Implementations/TeaJS - CommonJS Spec Wiki" . wiki.commonjs.org . تم الاطلاع عليه بتاريخ 2021-08-05 .
- ↑ SAS، واكاندا. "منصة واكاندا المتكاملة لتطبيقات جافا سكريبت" . منصة واكاندا المتكاملة لتطبيقات جافا سكريبت . تم الاطلاع بتاريخ 5 أغسطس 2021 .
- ↑ "أرشيف جوجل كود - تخزين طويل الأمد لاستضافة مشاريع جوجل كود" . code.google.com . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
روابط خارجية
- جافا سكريبت
