Skip to content

مدير الحزم في Bun يدعم "workspaces" الخاص بـ npm. يسمح لك هذا بتقسيم قاعدة الكود إلى "حزم" متعددة منفصلة تعيش في نفس المستودع، ويمكن أن تعتمد على بعضها البعض و (عند الإمكان) مشاركة دليل node_modules.

استنسخ مشروع العينة هذا للتجربة مع مساحات العمل.


لا يجب أن يحتوي package.json الجذر على أي "dependencies" أو "devDependencies" أو غير ذلك. يجب أن تكون كل حزمة فردية مستقلة وتعلن عن تبعياتها الخاصة. وبالمثل، من المعتاد الإعلان عن "private": true لتجنب نشر الحزمة الجذر إلى npm عن طريق الخطأ.

json
{
  "name": "my-monorepo",
  "private": true,
  "workspaces": ["packages/*"]
}

من الشائع وضع جميع الحزم في دليل packages. يدعم حقل "workspaces" في package.json أنماط glob، لذا يمكنك استخدام packages/* للإشارة إلى أن كل دليل فرعي من packages يجب اعتباره حزمة منفصلة (المعروفة أيضًا باسم مساحة العمل).

txt
.
├── package.json
├── node_modules
└── packages
    ├── stuff-a
    │   └── package.json
    └── stuff-b
        └── package.json

لإضافة تبعيات بين مساحات العمل، استخدم صيغة "workspace:*". هنا نضيف stuff-a كتبعيات لـ stuff-b.

json
{
  "name": "stuff-b",
  "dependencies": {
    "stuff-a": "workspace:*"
  }
}

بمجرد الإضافة، قم بتشغيل bun install من جذر المشروع لتثبيت التبعيات لجميع مساحات العمل.

sh
bun install

لإضافة تبعيات npm إلى مساحة عمل معينة، فقط cd إلى الدليل المناسب وقم بتشغيل أوامر bun add كما تفعل عادةً. سيكتشف Bun أنك في مساحة عمل ويرفع التبعية حسب الحاجة.

sh
cd packages/stuff-a
bun add zod

راجع الوثائق > مدير الحزم للحصول على الوثائق الكاملة لمدير الحزم الخاص بـ Bun.

Bun بواسطة www.bunjs.com.cn تحرير