قابل روما من مبتكري Babel - مترجم ، باني ، لينتر ، يختبر في زجاجة واحدة





منذ ما يقرب من أسبوعين ، ظهرت مدونة عن روما.



روما عبارة عن مجموعة كاملة من الأدوات - linter و compiler و builder و test runner والمزيد. يستهدف JS و TS و HTML و JSON و Markdown و CSS. يحاول المشروع توحيد مجموعة الأدوات اللازمة لتطوير الواجهة الأمامية.



روما متجانسة وتشمل جميع أدوات النظام البيئي الأمامية التقليدية. يسميها فريق التطوير سلسلة الأدوات. النقطة المهمة هي أن هذه ليست محاولة لدمج مجموعة أدوات موجودة ، ولكن لتطوير مجموعة جديدة تمامًا من الأدوات. يجب أن يكون كل هذا في حزمة واحدة وقاعدة بيانات واحدة.



يتم تطوير روما كبديل لـ Babel و ESLint و Webpack و Prettier و Jest وغيرها.



دعونا نرى إلى أين سيؤدي ذلك ، لأكون صادقًا ، أنا راضٍ عن بعض المنافسة ونهج "غير متآلف" في أدوات التطوير. نعم ، بالنسبة للمبتدئين ، المدخل ليس واضحًا ، فهناك العديد من الأدوات التي يمكن استبدالها في الغالب. ربما في هذا الفارق الدقيق ، ستخفض روما عتبة الدخول قليلاً.



الوضع الحالي







روما في مرحلة تجريبية وتقوم بالفعل ببعض مسؤولياتها. على سبيل المثال ، يدعم linter بالفعل 100 قاعدة ، بما في ذلك تلك المستخدمة بشكل شائع عند استخدام Typescript و React. القائمة الكاملة للقواعد يمكن العثور عليها هنا. و



المصدر المفتوح المشروع بدأ في بداية العام ومشروع لديها بالفعل 70 المساهمين وأكثر من 600 يرتكب. بشكل عام ، المشروع يتطور وحتى الآن لا يوجد توهين واضح.



القليل من التاريخ



في عام 2014 ، تم إنشاء 6to5 (تسمى الآن Babel). هذا هو مترجم جافا سكريبت الذي قام بتجميع كود ES6 الجديد في ES5. في ذلك الوقت ، لم يحدد المشروع أي أهداف ، ولكن مع نمو الشعبية ، كان لا بد من تعديل التطوير.



تم تغيير اسم 6to5 إلى Babel وكان الهدف الجديد هو أن يصبح إطارًا مشتركًا للتحولات الثابتة لـ JavaScript. وهذا يعني وجود نظام إضافي ودعم للميزات الجديدة لمعايير JavaScript المستقبلية وحتى "المقترحات".



يعتقد فريق التطوير أن يذهب أبعد من ذلك. يجب أن يكون Babel تحت غطاء المصغرات ، والنترات ، والمنسقات ، وإبراز بناء الجملة ، ومدققات الكتابة ، وأدوات التجميع ، وما إلى ذلك.



في عام 2016 ، ترك مبتكر Babel المشروع. بمرور الوقت ، أصبح من الواضح أن نهج توفير واجهة برمجة تطبيقات واسعة (حرفيًا جميع العناصر الداخلية) كان من الصعب جدًا الحفاظ عليه. لدعم مجموعة الأدوات المذكورة أعلاه ، يجب إعادة كتابة كل شيء حرفيًا. ترتبط بنية المشروع بالقرارات التي اتخذها المؤلف في عام 2014 ، ودرس فقط كيفية عمل محللي AST والمترجمين. ستؤثر التغييرات على معظم واجهة برمجة التطبيقات بدون التوافق مع الإصدارات السابقة.



يقضي مطورو أدوات JavaScript وقتًا هائلاً في معالجة التعليمات البرمجية المصدر. يقوم كل من Babel و ESlint و Webpack بنفس الشيء جزئيًا.



Linters في نظام JavaScript البيئي هي نفسها المجمعات. يأخذ كلاهما الكود المصدري كمدخلات ، ومعالجته وإخراج الكود والأخطاء (إن وجدت). فقط الكود المستلم مختلف. في حالة linter ، يتم تنسيق هذا الكود المصدري مع التصحيحات.



كلما كانت البنية التحتية للترجمة أقوى ، كلما كان اللنتر أقوى. الأمر نفسه ينطبق على الأدوات الأخرى التي تعالج التعليمات البرمجية بطريقة أو بأخرى. يمكننا بناء أدوات أكثر قوة باستخدام إطار عمل مشترك يسهل تكييفه.



روما هي الخليفة الروحي لبابل. لقد تعلمت دروسي وحددت أهدافًا واضحة. بدلاً من توفير واجهة برمجة تطبيقات عامة ضخمة جدًا للأدوات الأخرى ، نقوم بتجميعها جميعًا في مكان واحد. يسعدني تجربة شيء جديد لم يسبق له مثيل في JavaScript ونظام الويب.


- سيباستيان ماكنزي



باستخدام



يمكن تثبيت Rome باستخدام Yarn أو NPM:



yarn add rome


npm install rome


إنشاء المشروع



لكي تعثر روما على ملفاتك ، فإنها تحتاج إلى ضبط. لإنشاء مشروع تلقائيًا ، يمكنك استخدام:



rome init


سيقوم هذا الأمر بإنشاء دليل .config ووضع rome.rjson هناك ، مع تكوين المشروع.



إذا كان لديك مشروع حالي ، فيمكنك تلقائيًا تطبيق التنسيق والإصلاحات على الفور:



rome init --apply


RJSON هو امتداد JSON يضيف بعض الميزات. على سبيل المثال التعليقات في JSON.


يمكنك أن تبدأ مع لينتير



rome check


لينتينج



تم تصميم روما لتوفير أكبر قدر ممكن من المعلومات لتصحيح الأخطاء. يحتوي المشروع على نوع من العقيدة:



واجهة مستخدم غنية (ينتج عنها وحدة التحكم): معلومات منسقة جيدًا ، وإبراز بناء الجملة ، والروابط ، والقوائم ، والمزيد.



الإصلاحات: يمكن لروما إصلاح الكثير من الأخطاء (مثل linters) وتطبيقها تلقائيًا. إذا كانت هناك حلول متعددة ، فإن الأداة تمنحك الاختيار.



عملية المراجعة: واجهة سطر الأوامر (CLI) غنية بشكل تفاعلي وتتيح لك اتخاذ قرارات بشأن الإصلاحات وتجاوز جميع الأخطاء في وحدة التحكم مباشرةً.



المحررون: تتكامل روما مع المحررين ، مما يسمح لك بإجراء التنسيق للحفظ ، وإبراز الأخطاء ، وما إلى ذلك.



الحفظ: روما تخزن الملفات الأصلية مؤقتًا قبل إجراء التغييرات. باستخداماستعادة روما ، يمكنك التراجع عن الإصلاحات.







بدلا من الاستنتاج



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







إيقاف التوثيق



All Articles