import Patch from "/snippets/cli/patch.mdx";
يتيح لك bun patch تصحيح node_modules بشكل دائم بطريقة قابلة للصيانة ومتوافقة مع git.
في بعض الأحيان، تحتاج إلى إجراء تغيير صغير على حزمة في node_modules/ لإصلاح خطأ أو إضافة ميزة. يجعل bun patch من السهل القيام بذلك دون بيع الحزمة بأكملها وإعادة استخدام التصحيح عبر تثبيتات متعددة ومشاريع متعددة وأجهزة متعددة.
الميزات:
- ينشئ ملفات
.patchيتم تطبيقها على التبعيات فيnode_modulesعند التثبيت - يمكن الالتزام بملفات
.patchفي مستودعك وإعادة استخدامها عبر تثبيتات ومشاريع وأجهزة متعددة "patchedDependencies"فيpackage.jsonيتتبع الحزم المصححة- يتيح لك
bun patchتصحيح الحزم فيnode_modules/مع الحفاظ على سلامة الذاكرة المؤقتة العامة لـ Bun - اختبر تغييراتك محليًا قبل الالتزام بها باستخدام
bun patch --commit <pkg> - للحفاظ على مساحة القرص وجعل
bun installسريعًا، يتم الالتزام بالحزم المصححة في الذاكرة المؤقتة العامة ومشاركتها عبر المشاريع حيثما أمكن
الخطوة 1. تحضير الحزمة للتصحيح
للبدء، استخدم bun patch <pkg> لتحضير الحزمة للتصحيح:
# يمكنك تزويد اسم الحزمة
bun patch react
# ...وإصدار دقيق في حالة تثبيت إصدارات متعددة
bun patch react@17.0.2
# أو المسار إلى الحزمة
bun patch node_modules/reactملاحظة
لا تنسَ استدعاء bun patch <pkg>! يضمن هذا أن مجلد الحزمة في node_modules/ يحتوي على نسخة جديدة من الحزمة بدون روابط رمزية/صلبة إلى ذاكرة التخزين المؤقت لـ Bun. إذا نسيت القيام بذلك، فقد ينتهي بك الأمر إلى تحرير الحزمة عالميًا في ذاكرة التخزين المؤقت!
الخطوة 2. اختبار تغييراتك محليًا
يجعل bun patch <pkg> من الآمن تحرير <pkg> في node_modules/ مباشرة، مع الحفاظ على سلامة الذاكرة المؤقتة العامة لـ Bun. يعمل هذا عن طريق إعادة إنشاء نسخة غير مرتبطة من الحزمة في node_modules/ ومقارنتها بالحزمة الأصلية في الذاكرة المؤقتة العامة.
الخطوة 3. الالتزام بتغييراتك
بمجرد رضاك عن تغييراتك، قم بتشغيل bun patch --commit <path or pkg>.
سيقوم Bun بإنشاء ملف تصحيح في patches/، وتحديث package.json وملف القفل الخاص بك، وسيبدأ Bun في استخدام الحزمة المصححة:
# يمكنك تزويد المسار إلى الحزمة المصححة
bun patch --commit node_modules/react
# ... أو اسم الحزمة والإصدار اختياريًا
bun patch --commit react@17.0.2
# اختر الدليل لتخزين ملفات التصحيح
bun patch --commit react --patches-dir=mypatches
# `patch-commit` متاح للتوافق مع pnpm
bun patch-commit react