توفر مجموعة أوامر bun pm مجموعة من الأدوات للعمل مع مدير حزم Bun.
pack
لإنشاء tarball لمساحة العمل الحالية:
bun pm packينشئ هذا الأمر ملف .tgz يحتوي على جميع الملفات التي سيتم نشرها على npm، متبعًا نفس القواعد مثل npm pack.
أمثلة
الاستخدام الأساسي:
bun pm pack
# ينشئ my-package-1.0.0.tgz في الدليل الحاليالوضع الهادئ للبرمجة النصية:
TARBALL=$(bun pm pack --quiet)
echo "تم الإنشاء: $TARBALL"تم الإنشاء: my-package-1.0.0.tgzوجهة مخصصة:
bun pm pack --destination ./dist
# يحفظ tarball في دليل ./dist/الخيارات
--dry-run: تنفيذ جميع المهام باستثناء كتابة tarball على القرص. يعرض ما سيتم تضمينه.--destination <dir>: تحديد الدليل الذي سيتم حفظ tarball فيه.--filename <name>: تحديد اسم ملف دقيق لـ tarball لحفظه.--ignore-scripts: تخطي تشغيل نصوص pre/postpack و prepare.--gzip-level <0-9>: تعيين مستوى ضغط مخصص لـ gzip، يتراوح من 0 إلى 9 (الافتراضي هو 9).--quiet: إخراج اسم ملف tarball فقط، وكتم الإخراج المفصل. مثالي للبرمجة النصية والأتمتة.
ملاحظة: لا يمكن استخدام
--filenameو--destinationفي نفس الوقت.
أوضاع الإخراج
الإخراج الافتراضي:
bun pm packbun pack v1.2.19
packed 131B package.json
packed 40B index.js
my-package-1.0.0.tgz
Total files: 2
Shasum: f2451d6eb1e818f500a791d9aace80b394258a90
Unpacked size: 171B
Packed size: 249Bالإخراج الهادئ:
bun pm pack --quietmy-package-1.0.0.tgzعلامة --quiet مفيدة بشكل خاص لسير عمل الأتمتة حيث تحتاج إلى التقاط اسم ملف tarball المولد لمزيد من المعالجة.
bin
لطباعة المسار إلى دليل bin للمشروع المحلي:
bun pm bin/path/to/current/project/node_modules/.binلطباعة المسار إلى دليل bin العام:
bun pm bin -g<$HOME>/.bun/binls
لطباعة قائمة بالتبعيات المثبتة في المشروع الحالي وإصداراتها المحلولة، باستثناء تبعياتها.
bun pm ls
# أو
bun list/path/to/project node_modules (135)
├── eslint@8.38.0
├── react@18.2.0
├── react-dom@18.2.0
├── typescript@5.0.4
└── zod@3.21.4لطباعة جميع التبعيات المثبتة، بما في ذلك تبعيات الرتبة n.
bun pm ls --all
# أو
bun list --all/path/to/project node_modules (135)
├── @eslint-community/eslint-utils@4.4.0
├── @eslint-community/regexpp@4.5.0
├── @eslint/eslintrc@2.0.2
├── @eslint/js@8.38.0
├── @nodelib/fs.scandir@2.1.5
├── @nodelib/fs.stat@2.0.5
├── @nodelib/fs.walk@1.2.8
├── acorn@8.8.2
├── acorn-jsx@5.3.2
├── ajv@6.12.6
├── ansi-regex@5.0.1
├── ...whoami
يطبع اسم مستخدم npm الخاص بك. يتطلب أن تكون مسجل الدخول (bunx npm login) مع بيانات الاعتماد في bunfig.toml أو .npmrc:
bun pm whoamihash
لتوليد وطباعة تجزئة ملف القفل الحالي:
bun pm hashلطباعة السلسلة المستخدمة لتجزئة ملف القفل:
bun pm hash-stringلطباعة التجزئة المخزنة في ملف القفل الحالي:
bun pm hash-printcache
لطباعة المسار إلى ذاكرة التخزين المؤقتة العامة للوحدات النمطية في Bun:
bun pm cacheلمسح ذاكرة التخزين المؤقتة العامة للوحدات النمطية في Bun:
bun pm cache rmmigrate
لترحيل ملف قفل مدير حزم آخر دون تثبيت أي شيء:
bun pm migrateuntrusted
لطباعة التبعيات غير الموثوقة الحالية مع النصوص البرمجية:
bun pm untrusted./node_modules/@biomejs/biome @1.8.3
» [postinstall]: node scripts/postinstall.js
These dependencies had their lifecycle scripts blocked during install.trust
لتشغيل النصوص البرمجية للتبعيات غير الموثوقة والإضافة إلى trustedDependencies:
bun pm trust <names>خيارات لأمر trust:
--all: الوثوق بجميع التبعيات غير الموثوقة.
default-trusted
لطباعة قائمة التبعيات الموثوقة الافتراضية:
bun pm default-trustedراجع القائمة الحالية على GitHub هنا
version
لعرض إصدار الحزمة الحالية والمساعدة:
bun pm versionbun pm version v1.3.3 (ca7428e9)
Current package version: v1.0.0
Increment:
patch 1.0.0 → 1.0.1
minor 1.0.0 → 1.1.0
major 1.0.0 → 2.0.0
prerelease 1.0.0 → 1.0.1-0
prepatch 1.0.0 → 1.0.1-0
preminor 1.0.0 → 1.1.0-0
premajor 1.0.0 → 2.0.0-0
from-git استخدام الإصدار من أحدث علامة git
1.2.3 تعيين إصدار محدد
Options:
--no-git-tag-version تخطي عمليات git
--allow-same-version منع طرح خطأ إذا كان الإصدار نفسه
--message=<val>, -m رسالة التزام مخصصة، استخدم %s لاستبدال الإصدار
--preid=<val> معرف الإصدار الأولي (مثل beta → 1.0.1-beta.0)
--force, -f تجاوز فحص سجل git غير النظيف
Examples:
bun pm version patch
bun pm version 1.2.3 --no-git-tag-version
bun pm version prerelease --preid beta --message "Release beta: %s"لرفع الإصدار في package.json:
bun pm version patchv1.0.1يدعم patch و minor و major و premajor و preminor و prepatch و prerelease و from-git أو إصدارات محددة مثل 1.2.3. ينشئ التزام git وعلامة افتراضيًا ما لم يتم استخدام --no-git-tag-version للتخطي.
pkg
إدارة بيانات package.json مع عمليات get و set و delete و fix.
جميع الأوامر تدعم تدوين النقطة والأقواس:
scripts.build # تدوين النقطة
contributors[0] # الوصول إلى المصفوفة
workspaces.0 # النقطة مع الفهرس الرقمي
scripts[test:watch] # الأقواس للأحرف الخاصةأمثلة:
# get
bun pm pkg get name # خاصية واحدة
bun pm pkg get name version # خصائص متعددة
bun pm pkg get # package.json بالكامل
bun pm pkg get scripts.build # خاصية متداخلة
# set
bun pm pkg set name="my-package" # خاصية بسيطة
bun pm pkg set scripts.test="jest" version=2.0.0 # خصائص متعددة
bun pm pkg set {"private":"true"} --json # قيم JSON مع علامة --json
# delete
bun pm pkg delete description # خاصية واحدة
bun pm pkg delete scripts.test contributors[0] # متعددة/متداخلة
# fix
bun pm pkg fix # إصلاح المشاكل الشائعة تلقائيًا