تصف هذه الوثيقة عملية البناء لـ Windows. إذا واجهت مشاكل، يرجى الانضمام إلى #contributing channel على Discord للحصول على المساعدة.
يُوصى بشدة باستخدام PowerShell 7 (pwsh.exe) بدلاً من powershell.exe الافتراضي.
المتطلبات الأساسية
تمكين البرامج النصية
بشكل افتراضي، يتم حظر تشغيل البرامج النصية غير الموثقة.
> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestrictedتبعيات النظام
Bun v1.1 أو أحدث. نستخدم Bun لتشغيل مولدات الكود الخاصة به.
> irm bun.sh/install.ps1 | iexVisual Studio مع عبء عمل "Desktop Development with C++". أثناء التثبيت، تأكد من تثبيت Git أيضًا، إذا لم يكن Git for Windows مثبتًا بالفعل.
يمكن تثبيت Visual Studio بيانيًا باستخدام المعالج أو من خلال WinGet:
> 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 لتثبيت هذه الأدوات المتبقية بسهولة.
> irm https://get.scoop.sh | iex
> scoop install nodejs-lts go rust nasm ruby perl sccache
# يبدو أن scoop به خلل إذا قمت بتثبيت llvm والباقي في نفس الوقت
> scoop install llvm@19.1.7NOTE
يرجى عدم استخدام WinGet/مدير حزم آخر لهذه، حيث من المحتمل أن تقوم بتثبيت Strawberry Perl بدلاً من تثبيت Perl أكثر حداثة. يتضمن Strawberry Perl العديد من الأدوات الأخرى التي يتم تثبيتها في `$Env:PATH` والتي ستتعارض مع MSVC وتكسر البناء.إذا كنت تنوي بناء WebKit محليًا (اختياري)، فيجب تثبيت هذه الحزم:
> scoop install make cygwin pythonمن هنا فصاعدًا، من المتوقع أن تستخدم طرفية PowerShell مع .\scripts\vs-shell.ps1 كمصدر. هذا البرنامج النصي متاح في مستودع Bun ويمكن تحميله بتنفيذه:
> .\scripts\vs-shell.ps1للتحقق، يمكنك التحقق من أمر سطر أوامر MSVC فقط مثل mt.exe:
> Get-Command mtNOTE
لا يُوصى بتثبيت `ninja` / `cmake` في المسار العام الخاص بك، لأنك قد تواجه موقفًا تحاول فيه بناء bun بدون `.\scripts\vs-shell.ps1` كمصدر.البناء
> bun run build
# بعد `bun run build` الأولي يمكنك استخدام ما يلي للبناء
> ninja -Cbuild/debugإذا نجح هذا، يجب أن يكون لديك bun-debug.exe في مجلد build/debug.
> .\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، لمنع تعطل في مشغل الاختبار من إيقاف المجموعة بأكملها.
# الإعداد
> 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؟