التوثيق • الخلاف • القضايا • خارطة الطريق
Bun عبارة عن مجموعة أدوات شاملة لتطبيقات JavaScript وTypeScript. يتم شحنه كملف تنفيذي واحد يسمى bun
.
في جوهره يوجد وقت تشغيل Bun ، وهو وقت تشغيل جافا سكريبت سريع مصمم كبديل مباشر لـ Node.js. إنه مكتوب بلغة Zig ويتم تشغيله بواسطة JavaScriptCore تحت الغطاء، مما يقلل بشكل كبير من أوقات بدء التشغيل واستخدام الذاكرة.
كعكة تشغيل Index.tsx # TS وJSX مدعومة خارج الصندوق
تقوم أداة سطر الأوامر bun
أيضًا بتنفيذ مشغل الاختبار، ومشغل البرنامج النصي، ومدير الحزم المتوافق مع Node.js. بدلاً من 1000 وحدة عقدية للتطوير، ما عليك سوى bun
. تعد الأدوات المضمنة في Bun أسرع بكثير من الخيارات الموجودة ويمكن استخدامها في مشاريع Node.js الحالية مع تغييرات قليلة أو معدومة.
اختبار الكعكة # تشغيل الاختبارات تشغيل البداية # تشغيل البرنامج النصي "ابدأ" في "package.json"bun install <pkg> # تثبيت packagebunx Cowsay "مرحبًا بالعالم!" #تنفيذ الحزمة
يدعم Bun نظام Linux (x64 وarm64) وmacOS (x64 وApple Silicon) وWindows (x64).
مستخدمو Linux - يوصى بشدة باستخدام إصدار Kernel 5.6 أو أعلى، ولكن الحد الأدنى هو 5.1.
# مع تثبيت البرنامج النصي (مستحسن)curl -fsSL https://bun.sh/install | bash# على windowspowershell -c "irm Bun.sh/install.ps1 | iex"# مع تثبيت npmnpm -g Bun# مع فرن Homebrewbrew-sh/bun كعكة تثبيت الشراب # مع فرن/كعكة السحب من Dockerdocker docker run --rm --init --ulimit memlock=-1:-1 فرن/كعكة
للترقية إلى أحدث إصدار من Bun، قم بتشغيل:
ترقية كعكة
يقوم Bun تلقائيًا بإصدار إصدار كناري عند كل التزام بـ main
. للترقية إلى أحدث إصدار من الكناري، قم بتشغيل:
ترقية الكعكة --canary
شاهد بناء الكناري
مقدمة
ما هو كعكة؟
تثبيت
بداية سريعة
تايب سكريبت
القوالب
bun init
bun create
وقت التشغيل
bun run
أنواع الملفات
تايب سكريبت
JSX
متغيرات البيئة
واجهات برمجة تطبيقات كعكة
واجهات برمجة تطبيقات الويب
توافق Node.js
ملف واحد قابل للتنفيذ
الإضافات
وضع المشاهدة
قرار الوحدة
التثبيت التلقائي
Bunfig.toml
مصحح الأخطاء
واجهة برمجة التطبيقات الإطارية
مدير الحزم
bun install
bun add
bun remove
bun update
bun link
bun pm
ذاكرة التخزين المؤقت العالمية
مساحات العمل
البرامج النصية لدورة الحياة
فلتر
ملف القفل
النطاقات والسجلات
التجاوزات والقرارات
المجمع
Bun.build
لوادر
الإضافات
وحدات الماكرو
vs esbuild
عداء الاختبار
bun test
اختبارات الكتابة
وضع المشاهدة
خطافات دورة الحياة
يسخر
لقطات
التواريخ والأوقات
اختبار دوم
تغطية الكود
عداء الحزمة
bunx
واجهة برمجة التطبيقات
خادم HTTP
WebSockets
العمال
البيانات الثنائية
تيارات
إدخال/إخراج الملف
import.meta
سكليتي
FileSystemRouter
مآخذ TCP
مآخذ UDP
الكرة الأرضية
$ شل
عمليات الطفل
مترجم
التجزئة
وحدة التحكم
مؤسسة مالية أجنبية
HTMLRewriter
اختبار
المرافق
عقدة API
الكرة الأرضية
سمفر
مشروع
خريطة الطريق
قياس الأداء
المساهمة
بناء النوافذ
رخصة
ثنائي
تحويل Blob إلى DataView
تحويل Blob إلى ReadableStream
تحويل Blob إلى سلسلة
تحويل Blob إلى Uint8Array
تحويل Blob إلى ArrayBuffer
تحويل المخزن المؤقت إلى النقطة
تحويل المخزن المؤقت إلى ReadableStream
تحويل المخزن المؤقت إلى سلسلة
تحويل المخزن المؤقت إلى Uint8Array
تحويل المخزن المؤقت إلى ArrayBuffer
تحويل DataView إلى سلسلة
تحويل Uint8Array إلى Blob
تحويل Uint8Array إلى مخزن مؤقت
تحويل Uint8Array إلى DataView
تحويل Uint8Array إلى ReadableStream
تحويل Uint8Array إلى سلسلة
تحويل Uint8Array إلى ArrayBuffer
تحويل ArrayBuffer إلى Blob
تحويل ArrayBuffer إلى مخزن مؤقت
تحويل ArrayBuffer إلى سلسلة
تحويل ArrayBuffer إلى Uint8Array
تحويل ArrayBuffer إلى مجموعة من الأرقام
النظام البيئي
قم ببناء واجهة أمامية باستخدام Vite وBun
أنشئ تطبيقًا باستخدام Astro وBun
أنشئ تطبيقًا باستخدام Next.js وBun
أنشئ تطبيقًا باستخدام Nuxt وBun
أنشئ تطبيقًا باستخدام Qwik وBun
أنشئ تطبيقًا باستخدام Remix وBun
أنشئ تطبيقًا باستخدام SolidStart وBun
أنشئ تطبيقًا باستخدام SvelteKit وBun
أنشئ خادم HTTP باستخدام Elysia وBun
أنشئ خادم HTTP باستخدام Express وBun
أنشئ خادم HTTP باستخدام Hono وBun
أنشئ خادم HTTP باستخدام StricJS وBun
قم بوضع تطبيق Bun في حاوية باستخدام Docker
قم بإنشاء بوت Discord
نشر تطبيق Bun على Render
قراءة البيانات وكتابتها إلى MongoDB باستخدام Mongoose وBun
قم بتشغيل Bun كبرنامج خفي مع PM2
قم بتشغيل Bun كبرنامج خفي باستخدام systemd
تقديم جانب الخادم (SSR) لمكون React
استخدم Drizzle ORM مع الكعكة
استخدم EdgeDB مع Bun
استخدم Postgres بدون خادم من Neon مع Bun
استخدمي بريزما مع الكعكة
استخدم React وJSX
أضف Sentry إلى تطبيق Bun
HTTP
الاستخدام الشائع لخادم HTTP
قم بتكوين TLS على خادم HTTP
جلب مع مآخذ مجال يونكس في كعكة
إعادة تحميل سريع لخادم HTTP
طلبات الوكيل HTTP باستخدام الجلب ()
إرسال طلب HTTP باستخدام الجلب
بدء مجموعة من خوادم HTTP
دفق ملف كاستجابة HTTP
دفق خادم HTTP مع التكرارات غير المتزامنة
تدفق خادم HTTP مع تدفقات Node.js
تحميل الملفات عبر HTTP باستخدام FormData
اكتب خادم HTTP بسيط
ثَبَّتَ
إضافة تبعية
إضافة تبعية التنمية
أضف تبعية Git
إضافة تبعية الأقران
إضافة تبعية tarball
إضافة تبعية موثوقة
إضافة تبعية اختيارية
قم بتكوين سجل خاص لنطاق المؤسسة باستخدام تثبيت الكعكة
قم بتكوين git لملف lockb الخاص بـ diff Bun
تكوين monorepo باستخدام مساحات العمل
إنشاء ملف قفل يمكن قراءته بواسطة الإنسان
تثبيت حزمة تحت اسم مختلف
قم بتثبيت التبعيات باستخدام Bun في إجراءات GitHub
تجاوز سجل npm الافتراضي لتثبيت الكعكة
استخدام تثبيت الكعكة مع سجل Azure Artifacts npm
باستخدام تثبيت كعكة مع Artifactory
عملية
احصل على وقت تشغيل العملية بالنانو ثانية
استمع لـ CTRL+C
استمع إلى إشارات نظام التشغيل
تحليل وسيطات سطر الأوامر
قراءة من ستدين
قراءة stderr من عملية فرعية
قراءة stdout من عملية فرعية
تفرخ عملية الطفل
تفرخ عملية فرعية والتواصل باستخدام IPC
قراءة الملف
تحقق من وجود ملف
احصل على نوع MIME للملف
قراءة ملف باعتباره ReadableStream
قراءة ملف كسلسلة
قراءة ملف إلى المخزن المؤقت
قراءة ملف إلى Uint8Array
قراءة ملف إلى ArrayBuffer
قراءة ملف JSON
مشاهدة دليل للتغييرات
وقت التشغيل
تصحيح أخطاء Bun باستخدام ملحق VS Code
تصحيح أخطاء الكعكة باستخدام مصحح أخطاء الويب
تحديد واستبدال العموميات والثوابت الثابتة
قم باستيراد ملف JSON
استيراد ملف TOML
استيراد ملف HTML كنص
تثبيت وتشغيل Bun في إجراءات GitHub
تثبيت إعلانات TypeScript لـ Bun
إعادة خريطة مسارات الاستيراد
قراءة متغيرات البيئة
تشغيل أمر شل
قم بتعيين منطقة زمنية في بون
تعيين متغيرات البيئة
تيارات
تحويل Node.js قابل للقراءة إلى Blob
تحويل Node.js قابل للقراءة إلى سلسلة
تحويل Node.js القابلة للقراءة إلى ArrayBuffer
تحويل Node.js قابل للقراءة إلى JSON
تحويل ReadableStream إلى Blob
تحويل ReadableStream إلى مخزن مؤقت
تحويل ReadableStream إلى سلسلة
تحويل ReadableStream إلى Uint8Array
تحويل ReadableStream إلى مجموعة من القطع
تحويل ReadableStream إلى ArrayBuffer
تحويل ReadableStream إلى JSON
امتحان
الكفالة في وقت مبكر مع عداء اختبار كعكة
قم بإنشاء تقارير تغطية التعليمات البرمجية باستخدام عداء اختبار Bun
ضع علامة على الاختبار على أنه "ما يجب عمله" مع عداء اختبار Bun
الهجرة من Jest إلى عداء اختبار Bun
وظائف وهمية في bun test
أعد إجراء الاختبارات عدة مرات باستخدام عداء اختبار الكعكة
قم بإجراء الاختبارات في وضع المراقبة باستخدام Bun
قم بإجراء اختباراتك باستخدام عداء اختبار Bun
قم بتعيين حد تغطية الكود باستخدام عداء اختبار Bun
قم بتعيين مهلة لكل اختبار باستخدام عداء اختبار Bun
اضبط وقت النظام في عداء اختبار Bun
تخطي الاختبارات مع عداء اختبار الكعكة
التجسس على الطرق في bun test
تحديث اللقطات في bun test
استخدم اختبار اللقطة في bun test
اكتب اختبارات DOM للمتصفح باستخدام Bun وhappy-dom
فائدة
تحقق مما إذا كان الملف الحالي هو نقطة الدخول
تحقق مما إذا كان هناك كائنان متساويان بعمق
ضغط البيانات وفك ضغطها باستخدام DEFLATE
ضغط البيانات وفك ضغطها باستخدام gzip
تحويل عنوان URL للملف إلى مسار مطلق
تحويل المسار المطلق إلى عنوان URL للملف
اكتشف متى يتم تنفيذ التعليمات البرمجية باستخدام Bun
تشفير وفك تشفير سلاسل Base64
الهروب من سلسلة HTML
الحصول على المسار المطلق للملف الحالي
احصل على المسار المطلق إلى نقطة الدخول الحالية
احصل على نسخة الكعكة الحالية
احصل على دليل الملف الحالي
الحصول على اسم الملف للملف الحالي
احصل على المسار إلى ملف bin القابل للتنفيذ
تجزئة كلمة المرور
النوم لعدد محدد من المللي ثانية
WebSocket
إنشاء خادم WebSocket للنشر والاشتراك
قم ببناء خادم WebSocket بسيط
تمكين الضغط لرسائل WebSocket
قم بتعيين البيانات السياقية لكل مقبس على WebSocket
كتابة الملف
إلحاق محتوى بملف
انسخ ملفًا إلى موقع آخر
حذف ملف
اكتب Blob إلى ملف
كتابة ملف تدريجيا
اكتب ملفًا إلى stdout
اكتب ReadableStream إلى ملف
كتابة رد على ملف
اكتب سلسلة إلى ملف
اكتب إلى stdout
ارجع إلى المشروع > دليل المساهمة لبدء المساهمة في Bun.
ارجع إلى صفحة المشروع > الترخيص للحصول على معلومات حول ترخيص Bun.