Node 23 fixes the worst thing about JavaScript
Summary
TLDRتقدم النسخة التجريبية من Node 23 تحسينًا كبيرًا في بيئة تطوير Node.js، حيث تم حل مشكلة التوافق بين وحدات CommonJS (CJs) ووحدات ECMAScript (ESM). في الإصدارات السابقة، كان من المستحيل استخدام ESM في CJs دون تعقيدات كبيرة. ومع Node 23، يمكن للمطورين الآن استخدام الوحدات من كلا النظامين بحرية. على الرغم من أن بعض الحالات مثل استخدام `await` في أعلى المستوى لا تزال تسبب مشاكل، إلا أن هناك حلولًا مع إضافة العلم التجريبي. تعكس هذه التغييرات جهود Joy CH التي كان لها دور بارز في هذه التحسينات.
Takeaways
- 😀 تم تقديم إصدار تجريبي من Node 23 الذي يحل مشكلة كبيرة بين أنظمة الوحدات CJS و ESM.
- 😀 كانت المشكلة السابقة أن CJS يمكنه استيراد وحدات CJS فقط بينما يمكن لـ ESM استيراد كل من CJS و ESM.
- 😀 في الإصدار السابق (Node 22)، كان الخطأ الشائع هو أنه لا يمكن استخدام require في ملفات ESM.
- 😀 لحل هذه المشكلة في Node 22 كان من الضروري استخدام await import() داخل دالة async.
- 😀 الإصدار Node 23 يحل المشكلة بشكل كامل ويسمح بالتبادل المتبادل بين CJS و ESM دون الحاجة لتعديلات كبيرة في الكود.
- 😀 بالرغم من أن Node 23 يحل المشكلة بشكل كامل، إذا استخدمت top-level await في ملف ESM، قد تواجه خطأ يتعلق بـ require.
- 😀 يمكنك استخدام Node 22 مع إضافة علامة experimental-require-module لتفعيل نفس سلوك Node 23 التجريبي.
- 😀 تم تقديم هذه الميزة التجريبية في الإصدارات الفردية (مثل Node 23) بينما الإصدارات الزوجية تركز على الاستقرار.
- 😀 هذه التغييرات ستقلل من الحاجة إلى إعادة هيكلة الكود في تطبيقات Node.js التي تتعامل مع أنواع مختلفة من الوحدات.
- 😀 كانت Joy CH Young، التي تعمل في Bloomberg، من بين الأشخاص الذين دفعوا لتحقيق هذا التحسين في Node.js، مع الاستفادة من أفكار مشابهة في Bun.
Q & A
ما هو التغيير الكبير الذي أُدخل في إصدار Node 23؟
-التغيير الكبير هو أن إصدار Node 23 يسمح بالتوافق المتبادل بين CJS و ESM، مما يعني أنه يمكن استيراد واستخدام الوحدات من النظامين بدون مشاكل.
ما هي مشكلة الخطأ التي كانت تحدث في الإصدارات السابقة من Node؟
-المشكلة كانت أن CJS لا يستطيع استيراد ESM مباشرة، مما يسبب أخطاء عند محاولة استخدام وحدات ESM في بيئات CJS.
ما هو الفرق بين CJS و ESM في JavaScript؟
-CJS هو النظام التقليدي للوحدات في JavaScript، حيث يستخدم 'require' لاستيراد الوحدات. بينما ESM هو النظام الأحدث الذي يستخدم 'import' و 'export'، ويعتمد على الوحدات الحديثة.
كيف يمكن تشغيل TypeScript في Node.js؟
-يمكن تشغيل TypeScript في Node.js باستخدام الأمر 'node --experimental-modules'، والذي يسمح بتفسير ملفات TypeScript وتشغيلها مباشرة.
ما هو الخطأ الذي كان يحدث عند محاولة تشغيل الكود في إصدار Node 22؟
-الخطأ كان 'require of ES module is not supported' لأن Node 22 لا يدعم التوافق المباشر بين CJS و ESM.
كيف يمكن تجاوز مشكلة التوافق بين CJS و ESM في Node 22؟
-يمكن تجاوز المشكلة باستخدام علم 'experimental-modules' عند تشغيل الكود في Node 22 لتفعيل الدعم التجريبي للتوافق بين CJS و ESM.
ما هي أهمية إضافة 'top-level await' في ESM؟
-إضافة 'top-level await' في ESM يسمح باستخدام 'await' مباشرة في أعلى الملف بدون الحاجة لوضع الكود داخل دالة async، مما يجعل الكود أبسط وأكثر وضوحًا.
هل يمكن استخدام 'require' مع ESM؟
-لا، لا يمكن استخدام 'require' مع ESM مباشرة. يجب استخدام 'import' بدلاً من ذلك، وإذا كان لا بد من استخدام 'require'، يجب تغليف الكود في دالة async.
ما هو تأثير تحديثات Node 23 على بيئة تطوير JavaScript؟
-تحديثات Node 23 تسهل تطوير JavaScript لأنها تسمح بالتوافق المتبادل بين CJS و ESM دون الحاجة لتعديلات كبيرة على الكود أو إعادة هيكلة الأكواد لتتناسب مع نظام الوحدات.
كيف يمكن استخدام 'await' في ESM دون مواجهة أخطاء؟
-'await' يمكن استخدامه في ESM مباشرة في أعلى الملف (top-level await)، ولكن إذا تم استخدامه مع CJS، يجب تغليفه داخل دالة async لتجنب الأخطاء.
Outlines

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenMindmap

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenKeywords

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenHighlights

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenTranscripts

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenWeitere ähnliche Videos ansehen

Profil SMAMSA

توقعات برج السرطان لشهر مارس 2025

Science of Human Actions, Reactions & Interactions | Kathy Kolbe

Ergonomic Hazards

شارك تانك دبي | برنامج شامل لتعليم الأطفال من خلال الألعاب بمليون و850 ألف درهم مقابل 5%

المشروع | مدينة ينبع أكبر قاعدة صناعية على ساحل البحر الأحمر

كيف بشتغل تشات جي بي تي؟ تفسير مبسط لطريقة عمل الأداة
5.0 / 5 (0 votes)