مدير الحزم في Bun يدعم "workspaces" الخاص بـ npm. يسمح لك هذا بتقسيم قاعدة الكود إلى "حزم" متعددة منفصلة تعيش في نفس المستودع، ويمكن أن تعتمد على بعضها البعض و (عند الإمكان) مشاركة دليل node_modules.
استنسخ مشروع العينة هذا للتجربة مع مساحات العمل.
لا يجب أن يحتوي package.json الجذر على أي "dependencies" أو "devDependencies" أو غير ذلك. يجب أن تكون كل حزمة فردية مستقلة وتعلن عن تبعياتها الخاصة. وبالمثل، من المعتاد الإعلان عن "private": true لتجنب نشر الحزمة الجذر إلى npm عن طريق الخطأ.
{
"name": "my-monorepo",
"private": true,
"workspaces": ["packages/*"]
}من الشائع وضع جميع الحزم في دليل packages. يدعم حقل "workspaces" في package.json أنماط glob، لذا يمكنك استخدام packages/* للإشارة إلى أن كل دليل فرعي من packages يجب اعتباره حزمة منفصلة (المعروفة أيضًا باسم مساحة العمل).
.
├── package.json
├── node_modules
└── packages
├── stuff-a
│ └── package.json
└── stuff-b
└── package.jsonلإضافة تبعيات بين مساحات العمل، استخدم صيغة "workspace:*". هنا نضيف stuff-a كتبعيات لـ stuff-b.
{
"name": "stuff-b",
"dependencies": {
"stuff-a": "workspace:*"
}
}بمجرد الإضافة، قم بتشغيل bun install من جذر المشروع لتثبيت التبعيات لجميع مساحات العمل.
bun installلإضافة تبعيات npm إلى مساحة عمل معينة، فقط cd إلى الدليل المناسب وقم بتشغيل أوامر bun add كما تفعل عادةً. سيكتشف Bun أنك في مساحة عمل ويرفع التبعية حسب الحاجة.
cd packages/stuff-a
bun add zodراجع الوثائق > مدير الحزم للحصول على الوثائق الكاملة لمدير الحزم الخاص بـ Bun.