إذا كنت مطور برمجيات، فمن المحتمل أنك تعرف بالفعل، أن أحد أدوارك العديدة ليس بالتأكيد أن تكون مخترعاً آخر للعجلات. على الأقل، ليس في معظم الحالات.
أود أن أكتب عن JavaScript التبعيات. لكن دعنا نبدأ من البداية. إذا كنت مطور برمجيات، فمن المحتمل أنك تعرف بالفعل، أن أحد أدوارك العديدة بالتأكيد ليس أن تكون مخترع عجلة أخرى. على الأقل، ليس في معظم الحالات. لقد تقدم العالم بما فيه الكفاية لنقول أنه توجد اليوم حزم لكل شيء تقريباً، مما يجعل تطويرنا أسهل وأكثر كفاءة.
هذا بالطبع ليس تشجيعًا على فقدان الاهتمام بالقضايا الأخرى - فكل حزمة لديها مساحة كبيرة جدًا للتحسين والتطور. ومع ذلك، فإن هدف عملك هو تقديم حزمة كاملة من المنتج على طبق من ذهب في الوقت المحدد أو حتى قبل أن يحين موعده. ستساعدك الباقات على إنجاز تلك الخطط، مما يجلب لك ن م ب م أو خيوط الغزل على رأس قائمة أفضل أصدقائك، ولكن انتبه: أي حل، بالإضافة إلى هذا الحل، قد يجلب لك المخاطر أيضًا. وسنحاول أن نصفه ونوضح لك طريقة أفضل للهروب منه في المقالة أدناه.
لنبدأ بقصة...
تخيل JavaScript كبير JavaScript المشروع. تلزم متطلبات العمل المطورين باستخدام حزمة معينة، مما يسمح بالتكامل المناسب مع نظام آخر للعميل. وهذا أمر جيد تمامًا. MVP تم إحضاره في الوقت المحدد، وتم توقيع العقد التالي وجارٍ تطويره. يطلب العميل دمج الجزء التالي من النظام، الأمر الذي يتطلب تحديث الحزمة الخاصة بك.
يسير هذا الجزء بشكل جيد، حتى يتم إطلاق الاختبارات. يبدو أن الحزمة تحتوي على خطأ بسيط، ولكن غير مريح، لم يتم إصلاحه بعد في أي إصدار للمنتج ومن المعروف أن هذا لن يحدث قريبًا بما فيه الكفاية. لا يمكنك فقط إصلاح وحدات_العقدة الدليل - يجب إزالته من المستودع الخاص بك من التتبع، وبالتالي لن يعرف المتعاونون معك أي شيء عن تغييراتك! حسنًا، بينما كنت تقرأ هذا، ربما تكون قد فهمت بالفعل ما يجب القيام به - شوكة. ولكن هل تحتاج حقًا إلى مثل هذه المطرقة؟
فهم مشكلتك
يجب أن تكون على دراية بما إذا كانت المشكلة التي تواجهها ستشملك أنت فقط أو مجتمعاً أكبر. في بعض الأحيان، يفسر الناس عدم وجود وظائف معينة على أنه خطأ، وهذا ليس صحيحاً دائماً. لذلك, قد لا يتم قبول الحل الخاص بك من قبل المجتمع ولا يتم تضمينه في مستودع رسمي. ومع ذلك، لا تزال بحاجة إليها هنا والآن. حسنًا، دعنا نرقعه!
وفقًا لملاحظات الإصدار في مستودع github، فإن حزمة التصحيح ) تم إصداره رسميًا في مايو 2017. Iر هي أداة قوية تسمح بإجراء تعديلات داخل مشروع التبعية ليتم تثبيتها في وحدات_العقدة الدليل. قد يقول البعض أن هذا جنون تام - إطلاق أمر التثبيت سيؤدي إلى قيام مدير الاعتماد الخاص بك بالكتابة فوق التغييرات.
حسناً، هذا صحيح. ومع ذلك، تتعايش حزمة التصحيح مع ن م ب م و خيوط الغزل بشكل مثالي (يجب أن أعترف أنه يعمل بشكل أفضل قليلًا مع npm حتى الآن، يمكنك قراءة المزيد في قسم "لماذا يجب عليك استخدام postinstall-prepare مع Yarn؟" في ملف README) ويستفيد بشكل كامل من إعداد البرنامج النصي ("البرنامج النصي": {"إعداد":""}) من الحزمة.json الملف. تنشئ حزمة التصحيح حرفيًا دليل فرق بين التغييرات التي أجريتها والحزمة الأصلية، مخزنة في مجلد التصحيح الخاص بمشروعك الفعلي.
بعد تشغيل أمر التثبيت وتحميل جميع التبعيات، فإنه يطبق هذا الاختلاف على دليل المشروع، مما يجعل إعادة بناء التغييرات الخاصة بك مثالية لجميع المتعاونين. يجعل حياتك أسهل، أليس كذلك؟ لهذا الحل بعض العيوب أيضًا. لا يمكن لحزمة التصحيح إصلاح تبعيات الحزمة الخاصة بك أو إجراء أي تغييرات في الحزمة.json.
في هذه الحالة يمكنك استخدام حل الشوكة. أيضًا، يجب أن تفكر في عدد التغييرات التي أنت على وشك تطبيقها في حزمة التبعية الخاصة بك وما إذا كانت ستنمو مع مرور الوقت. في حالة الإرادة - يجب أن تفكر مليًا عند استخدام الفوركة، لأن هذا مشروع خاص بك.
لا تكن أنانياً!
التصحيح طريقة رائعة لإصلاح تبعياتك دون إنشاء شوكات لا نهاية لها وتوليد مصادر متعددة للمشروع. لكن يجب أن تتذكر دائمًا أن الاستفادة من المجتمع لا يجب أن تكون في اتجاه واحد. إذا وجدت خطأ ما أو شعرت أن بإمكانك تحسين الحزمة التي تستخدمها، فعليك دائمًا التفكير في مساعدة الآخرين من خلال تسجيل مشكلة أو حتى من خلال المساهمة في المشروع!