
كيف تبدأ سريعًا مع VUE3.0: انتقل إلى الدراسة
1.1 ما هو النمطية؟
تشير الوحدة النمطية إلى عملية تقسيم النظام إلى عدة وحدات طبقة تلو الأخرى من أعلى إلى أسفل عند حل مشكلة معقدة. بالنسبة للنظام بأكمله، الوحدات هي وحدات يمكن دمجها وتفكيكها واستبدالها.
النموذجية في مجال البرمجة هي اتباع قواعد ثابتة وتقسيم ملف كبير إلى وحدات صغيرة متعددة مستقلة ومترابطة.
فوائد تقسيم الكود إلى وحدات:
يعمل على تحسين إمكانية إعادة استخدام الكود،
ويحسن إمكانية صيانة الكود،
ويتيح التحميل عند الطلب
2.1 تصنيف الوحدات
في Node.js بناءً على الاعتماد. مصدر الوحدة، يتم تقسيم الوحدات إلى 3 فئات رئيسية، وهي:
الوحدات النمطية المضمنة (يتم توفير الوحدات المضمنة رسميًا بواسطة Node.js، مثل fs، وpath، وhttp، وما إلى ذلك)
الوحدات المخصصة (كل منها . ملف js تم إنشاؤه بواسطة المستخدم)، كلها وحدات مخصصة)
وحدات الطرف الثالث (الوحدات التي طورتها جهات خارجية لا يتم توفيرها رسميًا كوحدات مدمجة، كما أنها ليست وحدات مخصصة أنشأها المستخدمون، ويجب تنزيلها قبل الاستخدام)
2.2 تحميل الوحدات
باستخدام طريقة require() القوية، يمكنك تحميل الوحدات المضمنة المطلوبة، والوحدات النمطية المعرفة من قبل المستخدم، ووحدات الطرف الثالث للاستخدام. على سبيل المثال:

ملاحظة: عند استخدام الأسلوب require() لتحميل وحدات أخرى، سيتم تنفيذ التعليمات البرمجية الموجودة في الوحدة المحملة؛ ويمكن حذف لاحقة الملف ".js" عند تحميل وحدة مخصصة.
2.3 نطاق الوحدة النمطية في Node.js
ما هو نطاق الوحدة النمطية
؟ على غرار نطاق الوظيفة والمتغيرات والأساليب والأعضاء الآخرين المحددين في وحدة نمطية مخصصة، لا يمكن الوصول إليها إلا ضمن الوحدة الحالية، ويسمى هذا بنطاق الوحدة النمطية.
تمنعفائدة نطاق الوحدة
مشكلة تلوث المتغير العام (إذا تم استيراد ملفين js بعلامات البرنامج النصي وتم تعريف نفس المتغير في كلا الملفين، فسيتم استبدال الملف الأول بالملف الأخير)
2.4 مشاركة نطاق الوحدة خارجيًا عضو
1 كائن الوحدة النمطية
يوجد كائن وحدة نمطية في كل وحدة نمطية مخصصة لـ .js، والذي يقوم بتخزين المعلومات المتعلقة بالوحدة النمطية الحالية، ويتم طباعته على النحو التالي:

2. كائن Module.exports
في الوحدة النمطية المخصصة، يمكنك استخدام كائن Module.exports لمشاركة الأعضاء داخل الوحدة للاستخدام الخارجي.
عندما يستخدم العالم الخارجي التابع require() لاستيراد وحدة مخصصة، فإن ما يحصل عليه هو الكائن المشار إليه بواسطة Module.exports.
3. نقاط يجب ملاحظتها عند مشاركة الأعضاء:
عند استخدام التابع require() لاستيراد وحدة، ستعتمد نتيجة الاستيراد دائمًا على الكائن المشار إليه بواسطة Module.exports.

4. تصدير الكائن
نظرًا لأن كلمة Module.exports معقدة نسبيًا في الكتابة، فمن أجل تبسيط التعليمات البرمجية لمشاركة الأعضاء خارجيًا، توفر Node كائن التصدير. بشكل افتراضي، تشير الصادرات وmodule.exports إلى نفس الكائن. لا تزال النتيجة المشتركة النهائية تعتمد على الكائن المشار إليه بواسطة Module.exports.

5. سوء الفهم في استخدام الصادرات وmodule.exports
تذكر دائمًا أنه عندما تتطلب () وحدة، ستحصل دائمًا على الكائن المشار إليه بواسطة Module.exports:

الفهم الشخصي: الصادرات وmodule.exports تشير في الأصل إلى نفس الكائن. فقط عن طريق تركيب البيانات، لا يزال يشير إلى نفس الكائن، ويمكن أيضًا الحصول على البيانات التي تم تحميلها عن طريق الصادرات بواسطة الوحدة المطلوبة. إذا قام أحد الأطراف بتعيين قيمة (تشير إلى كائن آخر، فإنهم لا يشيرون إلى نفس الكائن، وتحصل الوحدة النمطية المطلوبة على الكائن المشار إليه بواسطة Module.exports، لذلك بمجرد قيام أحد الأطراف بتغيير المؤشر، لن تحصل الوحدة النمطية المطلوبة على قيمة الصادرات.)
ملاحظة: لتجنب الارتباك، يوصى بعدم استخدام الصادرات وmodule.exports في نفس الوقت في نفس الوحدة.
2.5 مواصفات النمطية في Node.js تتبع Node.js نمطية CommonJS تنص مواصفات CommonJS على خصائص الوحدات وكيفية تفاعل كل وحدة مع بعضها البعض.
ينص CommonJS على ما يلي:
(1) داخل كل وحدة، يمثل متغير الوحدة الوحدة الحالية.
(2) متغير الوحدة هو كائن، وسمة الصادرات الخاصة به (على سبيل المثال، Module.exports) هي الواجهة الخارجية.
(3) يؤدي تحميل الوحدة فعليًا إلى تحميل السمة Module.exports الخاصة بالوحدة. يتم استخدام طريقة require() لتحميل الوحدات.
3.1 الحزم
1. ما هي الحزمة؟
تسمى وحدات الطرف الثالث في Node.js أيضًا بالحزم.
مثلما تشير أجهزة الكمبيوتر وأجهزة الكمبيوتر إلى نفس الشيء، تشير وحدات وحزم الطرف الثالث إلى نفس المفهوم، ولكن بأسماء مختلفة.
2. يختلف مصدر الحزمة
عن الوحدات المضمنة والوحدات المخصصة في Node.js. تم تطوير الحزمة بواسطة فرد أو فريق تابع لجهة خارجية وهي مجانية للاستخدام من قبل الجميع.
ملحوظة: الحزم الموجودة في Node.js كلها مجانية ومفتوحة المصدر ويمكن تنزيلها واستخدامها مجانًا دون الدفع.
3. لماذا هناك حاجة إلى الحزم؟
نظرًا لأن الوحدات المضمنة في Node.js توفر فقط بعض واجهات برمجة التطبيقات ذات المستوى المنخفض، فإن كفاءة تطوير المشروع بناءً على الوحدات المضمنة منخفضة جدًا.
تم تغليف الحزمة بناءً على وحدات مدمجة، مما يوفر واجهة برمجة تطبيقات أكثر تقدمًا وملاءمة، مما يحسن كفاءة التطوير بشكل كبير.
تشبه العلاقة بين الحزم والوحدات المضمنة العلاقة بين jQuery وواجهة برمجة تطبيقات المتصفح المضمنة.
4. أين يمكن تنزيل الحزم؟
هناك شركة تكنولوجيا معلومات في الخارج تدعى npm, Inc. وتمتلك هذه الشركة موقعًا إلكترونيًا مشهورًا جدًا: www.npmjs.com/، وهو أكبر منصة لمشاركة الحزم في العالم، ويمكنك تنزيله من هنا ابحث عن أي حزمة تحتاجها، طالما أن لديك ما يكفي من الصبر!
حتى الآن، قام أكثر من 11 مليون مطور حول العالم بتطوير ومشاركة أكثر من 1.2 مليون حزمة لاستخدامنا من خلال منصة مشاركة الحزم هذه. توفر شركة npm, Inc. خادمًا على التسجيل.npmjs.org/ لمشاركة جميع الحزم خارجيًا. يمكننا تنزيل الحزم التي نحتاجها من هذا الخادم.
ملاحظة:
ابحث عن الحزمة التي تحتاجها من موقع www.npmjs.com/
وقم بتنزيل الحزمة التي تحتاجها من خادم التسجيل.npmjs.org/
5. كيفية تنزيل الحزمة
npm, Inc. توفر الشركة أداة لإدارة الحزم يمكننا استخدام أداة إدارة الحزم هذه لتنزيل الحزم المطلوبة من خادم التسجيل.npmjs.org/ للاستخدام المحلي.
اسم أداة إدارة الحزم هذه هو Node Package Manager (يشار إليها بأداة إدارة الحزم npm). يتم تثبيت أداة إدارة الحزم هذه على كمبيوتر المستخدم مع حزمة تثبيت Node.js.
يمكنك تنفيذ الأمر npm -v في الوحدة الطرفية للتحقق من رقم إصدار أداة إدارة الحزم npm المثبتة على جهاز الكمبيوتر الخاص بك:

3.2 أول تجربة مع npm
1. أمر تثبيت الحزم في المشروع
إذا كنت ترغب في تثبيت حزمة باسم محدد في المشروع، فأنت بحاجة إلى تشغيل الأمر التالي:
npm install الاسم الكامل للحزمة
يمكن لأمر التغليف أعلاه سيتم اختصارها بالتنسيق التالي:
npm i الاسم الكامل للحزمة
2. ما هي الملفات الإضافية التي تتم إضافتها بعد تثبيت الحزمة الأولي؟
بعد اكتمال التثبيت الأولي للحزمة، سيكون هناك مجلد إضافي يسمىnode_modules وحزمة ملف التكوين؟ lock.json ضمن مجلد المشروع.
من بينها: يتم استخدام المجلدNode_modules لتخزين كافة الحزم التي تم تثبيتها في المشروع. عندما يقوم require() باستيراد حزمة تابعة لجهة خارجية، فإنه يبحث عن الحزمة ويحملها من هذا الدليل.
يتم استخدام ملف التكوين package-lock.json لتسجيل معلومات التنزيل لكل حزمة في دليلNode_modules، مثل اسم الحزمة ورقم الإصدار وعنوان التنزيل وما إلى ذلك.
ملاحظة: يجب على المبرمجين عدم تعديل أي تعليمات برمجية يدويًا في ملفات العقدة أو ملفات package-lock.json، حيث ستقوم أداة إدارة الحزم npm بالمحافظة عليها تلقائيًا.
3. قم بتثبيت الإصدار المحدد من الحزمة
بشكل افتراضي، عند استخدام الأمر npm install لتثبيت الحزمة، سيتم تثبيت الإصدار الأحدث من الحزمة تلقائيًا. إذا كنت بحاجة إلى تثبيت حزمة من إصدار محدد، يمكنك تحديد الإصدار المحدد من خلال الرمز @ بعد اسم الحزمة، على سبيل المثال:
npm i [email protected]
4. مواصفات الإصدار الدلالي للحزمة
رقم الإصدار الحزمة في "عشري منقط" ويتم تعريفها في شكل إجمالي ثلاثة أرقام، على سبيل المثال، 2.24.0
معنى كل رقم كما يلي:
الرقم الأول: الإصدار الرئيسي
الرقم الثاني: الإصدار الوظيفي
الرقم الثالث: إصلاح الخلل
رقم إصدار الإصدار قواعد الترقية: طالما زاد رقم الإصدار السابق، سيعود رقم الإصدار اللاحق إلى الصفر.
3.3 ينص ملف تكوين إدارة الحزم
npm على أنه يجب توفير ملف تكوين إدارة الحزم المسمى package.json في الدليل الجذر للمشروع. يستخدم لتسجيل بعض معلومات التكوين المتعلقة بالمشروع. على سبيل المثال:
اسم المشروع، ورقم الإصدار، والوصف، وما إلى ذلك.
ما هي الحزم المستخدمة في المشروع،
وما هي الحزم التي يتم استخدامها فقط أثناء التطوير،
وما هي الحزم المطلوبة أثناء التطوير والنشر
المشكلات التي تمت مواجهتها
في التعاون متعدد الأشخاص
: حجم حزم الطرف الثالث كبيرة جدًا، مما يجعل من غير المناسب لأعضاء الفريق مشاركة الكود المصدري للمشروع.الحل: إزالة وحدات العقدة عند المشاركة
2. كيفية تسجيل الحزم المثبتة في المشروع
. في الدليل الجذر للمشروع، قم بإنشاء ملف تكوين يسمى package.json، والذي يمكن استخدامه لتسجيل الحزم المثبتة في المشروع. وهذا يجعل من السهل مشاركة الكود المصدري للمشروع بين أعضاء الفريق بعد إزالة دليلNode_modules.
ملاحظة: في تطوير المشروع المستقبلي، تأكد من إضافة المجلدNode_modules إلى ملف التجاهل .gitignore.
3. إنشاء package.json بسرعة
توفر أداة إدارة الحزم npm أمرًا مختصرًا لإنشاء ملف تكوين إدارة الحزم package.json بسرعة في الدليل حيث يتم تنفيذ الأمر:
npm init -y
ملاحظة:
(1) الأمر أعلاه هو. لا يمكن تشغيله إلا بنجاح في الدليل الإنجليزي! ولذلك يجب تسمية اسم مجلد المشروع باللغة الإنجليزية، وليس الصينية، ويجب ألا تكون هناك مسافات.
(2) عند تشغيل أمر npm install لتثبيت حزمة، ستقوم أداة إدارة حزمة npm بتسجيل اسم الحزمة ورقم إصدارها تلقائيًا في package.json.
4. عقدة التبعيات
في ملف package.json، توجد عقدة تبعيات، تُستخدم خصيصًا لتسجيل الحزم التي قمت بتثبيتها باستخدام أمر npm install.
5. قم بتثبيت جميع الحزم مرة واحدة.
عندما نحصل على مشروع تمت إزالة وحدات العقدة فيه، نحتاج إلى تنزيل جميع الحزم في المشروع قبل أن نتمكن من تشغيل المشروع. وإلا، سيتم الإبلاغ عن خطأ مشابه لما يلي:

يمكنك تشغيل الأمر npm install (أو npm i) لتثبيت جميع الحزم التابعة مرة واحدة:

6. لإلغاء تثبيت حزمة
، يمكنك تشغيل الأمر npm uninstall لإلغاء تثبيت الحزمة المحددة:
npm uninstall اسم حزمة محدد
ملاحظة: بعد تنفيذ أمر npm uninstall بنجاح، ستتم إزالة الحزمة التي تم إلغاء تثبيتها تلقائيًا من تبعيات package.json . لا يوجد اختصار لإلغاء التثبيت.
7. عقدة devDependeency.
إذا كان سيتم استخدام بعض الحزم فقط أثناء مرحلة تطوير المشروع ولن يتم استخدامها بعد تشغيل المشروع عبر الإنترنت، فمن المستحسن تسجيل هذه الحزم في عقدة devDependeency.
في المقابل، إذا كانت هناك حاجة لاستخدام بعض الحزم بعد التطوير وإطلاق المشروع، فمن المستحسن تسجيل هذه الحزم في عقدة التبعيات.
يمكنك استخدام الأمر التالي لتسجيل الحزمة في عقدة devDependeency:

3.4 حل مشكلة سرعة تنزيل الحزمة البطيئة
1. لماذا تكون سرعة تنزيل الحزمة بطيئة؟
عند استخدام npm لتنزيل الحزم، يتم تنزيلها من خادم التسجيل الخارجي.npmjs.org/ بشكل افتراضي، وبالتالي ستكون سرعة تنزيل الحزمة بطيئة جدًا. .
2. خادم مرآة Taobao NPM
قامت شركة Taobao ببناء خادم في الصين لمزامنة الحزم الموجودة على الخوادم الأجنبية الرسمية مع الخوادم المحلية، ومن ثم تقديم خدمات توزيع الحزم في الصين. يؤدي هذا إلى تحسين سرعة تنزيل الحزم بشكل كبير.
الامتداد: النسخ المتطابق هو شكل من أشكال تخزين الملفات، حيث تحتوي البيانات الموجودة على قرص واحد على نسخة مماثلة على قرص آخر، وهو عبارة عن مرآة.

3. قم بتبديل مصدر مرآة الحزمة لـ npm
يشير مصدر مرآة الحزمة إلى عنوان خادم الحزمة.

4.nrm
من أجل تبديل مصدر صورة الحزمة بشكل أكثر ملاءمة، يمكننا تثبيت أداة nrm، واستخدام الأمر الطرفي الذي توفره nrm لعرض مصدر صورة الحزمة وتبديله بسرعة.

3.5 تصنيف الحزم
تنقسم الحزم التي تم تنزيلها باستخدام أداة إدارة الحزم npm إلى فئتين، وهما:
المشروع
العامة
1. حزمة المشروع
تلك الحزم التي تم تثبيتها في دليل Node_modules الخاص بالمشروع هي جميع حزم المشروع.
تنقسم حزم المشاريع إلى فئتين وهما:
حزم تبعيات التطوير (الحزم المسجلة في عقدة devDependeency، والتي تستخدم فقط أثناء التطوير)
حزم التبعيات الأساسية (الحزم المسجلة في عقدة التبعيات، والتي يتم استخدامها أثناء التطوير والمشروع) تستخدم بعد الاتصال بالإنترنت)

2. الحزمة العامة عند تنفيذ أمر تثبيت npm، إذا تم توفير المعلمة -g، فسيتم تثبيت الحزمة كحزمة عالمية.
سيتم تثبيت الحزمة العامة في الدليل C:UsersuserAppDataRoamingnpmnode_modules.

ملاحظة:
(1) يجب تثبيت حزم الأدوات فقط عالميًا. لأنها توفر أوامر طرفية مفيدة.
(2) لتحديد ما إذا كانت الحزمة بحاجة إلى التثبيت عالميًا قبل استخدامها، يمكنك الرجوع إلى التعليمات الرسمية للاستخدام.
3. i5ting_toc
i5ting_toc هي أداة صغيرة يمكنها تحويل مستندات md إلى صفحات html. الخطوات التي يجب استخدامها هي كما يلي:

3.6 بنية الحزمة الموحدة
بعد فهم مفهوم الحزم وكيفية تنزيل الحزم واستخدامها، دعونا نلقي نظرة أعمق على البنية الداخلية للحزم.
يجب أن تستوفي الحزمة القياسية المتطلبات الثلاثة التالية:
(1) يجب أن تكون الحزمة موجودة في دليل منفصل
(2) يجب أن يحتوي دليل المستوى الأعلى للحزمة على ملف تكوين إدارة الحزمة package.json
(3) يجب أن يحتوي package.json على ثلاث سمات: الاسم والإصدار والرئيسي، والتي تمثل على التوالي اسم الحزمة ورقم الإصدار وإدخال الحزمة.
ملحوظة: المتطلبات الثلاثة المذكورة أعلاه هي التنسيق الذي يجب أن تتوافق معه بنية الحزمة القياسية. لمزيد من القيود، يمكنك الرجوع إلى عنوان URL التالي: https://yarnpkg.com/zh-Hans/docs/package-json
3.7 قم بتطوير موقعك. الحزمة الخاصة
1. تهيئة البنية الأساسية للحزمة
(1) قم بإنشاء مجلد أدوات itheima جديد كدليل جذر للحزمة
(2) في مجلد أدوات itheima، قم بإنشاء الملفات الثلاثة التالية:
package.json (إدارة الحزم ملف التكوين)
Index.js (ملف إدخال الحزمة)
README.md (وثيقة وصف الحزمة)
2. تهيئة package.json

ملاحظة: الاسم - يستخدم لمعرفة اسم التطبيق أو إصدار حزمة البرنامج - يشير إلى الإصدار الحالي؛ الرئيسي - يحدد نقطة دخول التطبيق؛ مجموعة من الكلمات الرئيسية المتعلقة بوظيفة حزمة البرامج (تساعد على تصفح الموقع الرسمي للعقدة للعثور على ترخيص حزمة البرامج) — تحدد ترخيص حزمة البرامج.
3. اكتب وثائق الحزمة.
الملف README.md في الدليل الجذر للحزمة هو وثائق استخدام الحزمة. ومن خلاله يمكننا كتابة تعليمات استخدام الحزمة بتنسيق تخفيض السعر مقدمًا لراحة المستخدم.
لا توجد متطلبات إلزامية بشأن المحتوى الذي يجب كتابته في ملف README طالما يمكن وصف وظيفة الحزمة واستخدامها واحتياطاتها وما إلى ذلك بشكل واضح.
3.8 حزمة الإصدار
1. سجل حساب npm
(1) قم بزيارة موقع الويب www.npmjs.com/، وانقر فوق زر التسجيل للدخول إلى واجهة مستخدم التسجيل
(2) املأ المعلومات المتعلقة بالحساب: الاسم الكامل، البريد الإلكتروني العام، اسم المستخدم، كلمة المرور
(3) انقر فوق الزر "إنشاء حساب" لتسجيل حساب
(4) قم بتسجيل الدخول إلى بريدك الإلكتروني وانقر على رابط التحقق للتحقق من الحساب
2. قم بتسجيل الدخول إلى حساب npm
بعد اكتمال تسجيل حساب npm يمكن تنفيذ أمر تسجيل الدخول npm في الجهاز وإدخال اسم المستخدم وكلمة المرور (كلمة المرور) وهي مخفية ولا يمكن رؤيتها، ما عليك سوى إدخال المفتاح الصحيح (Enter) وعنوان البريد الإلكتروني ورمز OTP المرسل إلى عنوان البريد الإلكتروني، ثم يمكنك تسجيل الدخول بنجاح.
ملاحظة: قبل تشغيل أمر تسجيل الدخول npm، يجب عليك أولاً تبديل عنوان خادم الحزمة إلى الخادم الرسمي لـ npm. (إذا كنت تستخدم خادم تاوباو من قبل، فيجب عليك التبديل إلى خادم npm الرسمي) وإلا فسيفشل نشر الحزمة!

3. انشر الحزمة إلى npm
.
بعد تحويل الجهاز إلى الدليل الجذر للحزمة، قم بتشغيل أمر نشر npm لنشر الحزمة إلى npm (ملاحظة: لا يمكن أن تكون أسماء الحزمة هي نفسها. يمكنك الانتقال إلى الموقع الرسمي لـ تحقق مما إذا كانت هناك حزم بنفس الاسم).
4. احذف الحزمة المنشورة.
قم بتشغيل الأمر npm unpublish package name --force لحذف الحزمة المنشورة من npm.
ملاحظة:
(1) يمكن لأمر npm unpublish حذف الحزم المنشورة خلال 72 ساعة فقط
(2) لا يُسمح بإعادة نشر الحزم المحذوفة بواسطة npm unpublish خلال 24 ساعة
(3) كن حذرًا عند نشر الحزم وحاول عدم نشرها على npm حزمة لا معنى لها!
4.1 سيتم تخزين الوحدات حسب الأولوية من ذاكرة التخزين المؤقت
بعد التحميل الأول. هذا يعني أيضًا أن استدعاء require() عدة مرات لن يؤدي إلى تنفيذ كود الوحدة عدة مرات.

ملاحظة: سواء كانت وحدات مدمجة، أو وحدات محددة من قبل المستخدم، أو وحدات طرفية أخرى، فسيتم تحميلها من ذاكرة التخزين المؤقت أولاً، وبالتالي تحسين كفاءة تحميل الوحدة.
4.2 آلية تحميل الوحدات المضمنة
الوحدات المضمنة هي وحدات مقدمة رسميًا بواسطة Node.js ولها أعلى أولوية في التحميل.
على سبيل المثال: require('fs') تُرجع دائمًا وحدة fs المضمنة، حتى لو كانت هناك حزمة بنفس الاسم في دليل العقدة_modules، فإنها تسمى أيضًا fs.
4.3 آلية تحميل الوحدة المخصصة
عند استخدام require() لتحميل وحدة مخصصة، يجب عليك تحديد معرف مسار يبدأ بـ ./ أو ../. عند تحميل وحدة مخصصة، إذا لم يتم تحديد معرف مسار مثل ./ أو ../، فستقوم العقدة بتحميلها كوحدة نمطية مضمنة أو وحدة نمطية تابعة لجهة خارجية.
في الوقت نفسه، عند استخدام require() لاستيراد وحدة مخصصة، إذا تم حذف امتداد الملف، فسيحاول Node.js تحميل الملفات التالية بالترتيب:
(1) التحميل وفقًا لاسم الملف الدقيق
(2) الإكمال امتداد .js للتحميل
(3) أكمل امتداد .json للتحميل
(4) أكمل امتداد .node للتحميل
(5) فشل التحميل، تبلغ الوحدة الطرفية عن خطأ
4.4 إذا تم تمرير آلية التحميل لوحدات الطرف الثالث
للمطالبة () إذا لم يكن معرف الوحدة وحدة مدمجة ولا يبدأ بـ "./" أو "../"، فستحاول Node.js تحميل وحدة الطرف الثالث من المجلد /node_modules، بدءًا من الدليل الأصلي للوحدة الحالية.
إذا لم يتم العثور على وحدة الطرف الثالث المقابلة، فسيتم نقلها إلى الدليل الأصلي بمستوى أعلى وتحميلها حتى الدليل الجذر لنظام الملفات.
على سبيل المثال، بافتراض أن require('tools') يتم استدعاؤه في الملف 'C:Usersitheimaprojectfoo.js'، فإن Node.js ستبحث بالترتيب التالي:
(1) C:Usersitheima مشروع node_modulestools
(2) C:Usersitheimanode_modulestools
(3) C:Usersnode_modulestools
(4) C:node_modulestools
4.5 الدليل كوحدة نمطية
عند تمرير الدليل كوحدة نمطية المعرف، عند تحميل require()، هناك ثلاث طرق للتحميل:
(1) ابحث عن ملف يسمى package.json في الدليل الذي يتم تحميله، وابحث عن السمة الرئيسية، التي تعمل كنقطة دخول لـ require() للتحميل
( 2) إذا لم يكن هناك ملف package.json في الدليل، أو كان الإدخال الرئيسي غير موجود أو لا يمكن تحليله، فسيحاول Node.js تحميل ملف Index.js في الدليل.
(3) إذا فشلت الخطوتين أعلاه، فسوف يقوم Node.js بطباعة رسالة خطأ في الوحدة الطرفية، للإبلاغ عن الوحدة المفقودة: خطأ: لا يمكن العثور على الوحدة النمطية 'xxx'
هذه المقالة مستنسخة من: https://juejin.cn/post /7083445004240158757