Skip to content

تصف هذه الوثيقة عملية البناء لـ Windows. إذا واجهت مشاكل، يرجى الانضمام إلى #contributing channel على Discord للحصول على المساعدة.

يُوصى بشدة باستخدام PowerShell 7 (pwsh.exe) بدلاً من powershell.exe الافتراضي.

المتطلبات الأساسية

تمكين البرامج النصية

بشكل افتراضي، يتم حظر تشغيل البرامج النصية غير الموثقة.

ps1
> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

تبعيات النظام

Bun v1.1 أو أحدث. نستخدم Bun لتشغيل مولدات الكود الخاصة به.

ps1
> irm bun.sh/install.ps1 | iex

Visual Studio مع عبء عمل "Desktop Development with C++". أثناء التثبيت، تأكد من تثبيت Git أيضًا، إذا لم يكن Git for Windows مثبتًا بالفعل.

يمكن تثبيت Visual Studio بيانيًا باستخدام المعالج أو من خلال WinGet:

ps1
> winget install "Visual Studio Community 2022" --override "--add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.Component.Git " -s msstore

بعد Visual Studio، ستحتاج إلى ما يلي:

  • LLVM 19.1.7
  • Go
  • Rust
  • NASM
  • Perl
  • Ruby
  • Node.js

NOTE

يتم تنزيل وتثبيت وتحديث مترجم Zig تلقائيًا بواسطة عملية البناء.

يمكن استخدام Scoop لتثبيت هذه الأدوات المتبقية بسهولة.

ps1
> irm https://get.scoop.sh | iex
> scoop install nodejs-lts go rust nasm ruby perl sccache
# يبدو أن scoop به خلل إذا قمت بتثبيت llvm والباقي في نفس الوقت
> scoop install llvm@19.1.7

NOTE

يرجى عدم استخدام WinGet/مدير حزم آخر لهذه، حيث من المحتمل أن تقوم بتثبيت Strawberry Perl بدلاً من تثبيت Perl أكثر حداثة. يتضمن Strawberry Perl العديد من الأدوات الأخرى التي يتم تثبيتها في `$Env:PATH` والتي ستتعارض مع MSVC وتكسر البناء.

إذا كنت تنوي بناء WebKit محليًا (اختياري)، فيجب تثبيت هذه الحزم:

ps1
> scoop install make cygwin python

من هنا فصاعدًا، من المتوقع أن تستخدم طرفية PowerShell مع .\scripts\vs-shell.ps1 كمصدر. هذا البرنامج النصي متاح في مستودع Bun ويمكن تحميله بتنفيذه:

ps1
> .\scripts\vs-shell.ps1

للتحقق، يمكنك التحقق من أمر سطر أوامر MSVC فقط مثل mt.exe:

ps1
> Get-Command mt

NOTE

لا يُوصى بتثبيت `ninja` / `cmake` في المسار العام الخاص بك، لأنك قد تواجه موقفًا تحاول فيه بناء bun بدون `.\scripts\vs-shell.ps1` كمصدر.

البناء

ps1
> bun run build

# بعد `bun run build` الأولي يمكنك استخدام ما يلي للبناء
> ninja -Cbuild/debug

إذا نجح هذا، يجب أن يكون لديك bun-debug.exe في مجلد build/debug.

ps1
> .\build\debug\bun-debug.exe --revision

يجب إضافة هذا إلى $Env:PATH. أبسط طريقة للقيام بذلك هي فتح قائمة البدء، اكتب "Path"، ثم انتقل إلى قائمة متغيرات البيئة لإضافة C:\.....\bun\build\debug إلى متغير البيئة PATH الخاص بالمستخدم. يجب عليك بعد ذلك إعادة تشغيل المحرر (إذا لم يتم التحديث، قم بتسجيل الخروج وتسجيل الدخول مرة أخرى).

المسارات الإضافية

  • يتم استخراج WebKit إلى build/debug/cache/webkit/
  • يتم استخراج Zig إلى build/debug/cache/zig/bin/zig.exe

الاختبارات

يمكنك تشغيل مجموعة الاختبارات إما باستخدام bun test <path> أو باستخدام البرنامج النصي الغلاف bun node:test <path>. يشغل أمر bun node:test كل ملف اختبار في مثيل منفصل من bun.exe، لمنع تعطل في مشغل الاختبار من إيقاف المجموعة بأكملها.

ps1
# الإعداد
> bun i --cwd packages\bun-internal-test

# تشغيل مجموعة الاختبارات بالكامل مع المراسل
# يستخدم البرنامج النصي "test" في package.json "build/debug/bun-debug.exe" بشكل افتراضي
> bun run test

# تشغيل ملف اختبار فردي:
> bun-debug test node\fs
> bun-debug test "C:\bun\test\js\bun\resolve\import-meta.test.js"

استكشاف الأخطاء وإصلاحها

فشل بناء ملف .rc

llvm-rc.exe غريب. لا تستخدمه. استخدم rc.exe، للقيام بذلك تأكد من أنك في طرفية تطوير visual studio، تحقق من rc /? للتأكد من أنه Microsoft Resource Compiler

فشل الكتابة إلى الإخراج 'bun-debug.exe': إذن مرفوض

لا يمكنك الكتابة فوق bun-debug.exe إذا كان مفتوحًا بالفعل. من المحتمل أن يكون لديك مثيل قيد التشغيل، ربما في مصحح أخطاء vscode؟

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