Orbit
الأطر والبيئات المدعومة في Orbit
Orbit builds any project that installs with npm, yarn or pnpm and produces a folder of files or a Node.js server, and it detects the framework and package manager for you so most projects deploy…
Orbit يبني أي مشروع يتم تثبيته باستخدام npm أو yarn أو pnpm وينتج مجلد ملفات أو خادم Node.js، ويكتشف الإطار ومدير الحزم لك بحيث يتم نشر معظم المشاريع بدون أي إعدادات بناء على الإطلاق. يغطي هذا الدليل ما يتم اكتشافه، والإعدادات التي يحتاجها كل إطار عمل شائع، ومتى يجب عليك تشغيل وضع الخادم، وكيفية اختيار إصدار Node.js.
ما يكتشفه Orbit تلقائياً
عند تشغيل البناء، يسجل Orbit ما وجده ويعرضه عليك:
- الإطار، على صفحة تفاصيل النشر وكشارة على بطاقات النشر على نظرة عامة على المشروع.
- مدير الحزم، المختار من ملف الأقفال الخاص بك:
package-lock.jsonيعطي npm،yarn.lockيعطي yarn،pnpm-lock.yamlيعطي pnpm.
إعدادات البناء في Settings كلها اختيارية. اترك حقلاً فارغاً وسيخبرك النص التوضيحي الخاص به بما سيتم استخدامه بدلاً من ذلك: أمر التثبيت يظهر npm ci (auto-detected)، أمر البناء يظهر npm run build (auto-detected)، و مجلد الإخراج يظهر dist (auto-detected).

التزم بملف أقفال واحد بالضبط. إذا كان package-lock.json و yarn.lock كلاهما في المستودع، فقد لا يكون مدير الحزم الذي يختاره Orbit هو الذي تستخدمه محلياً، وستحصل على تثبيت يتصرف بشكل مختلف عن جهازك بدون سبب واضح. احذف الذي لا تستخدمه.
الإعدادات حسب الإطار
هذه هي القيم التي يحتاجها كل إطار عمل. حيث يشحن Orbit قالب بادئ للإطار، يستخدم القالب بالضبط هذه الإعدادات.
| الإطار | أمر البناء | مجلد الإخراج | وضع الخادم |
|---|---|---|---|
| Next.js، التصدير الثابت | npm run build | out | إيقاف |
| Next.js، SSR أو ISR | npm run build | .next | تشغيل |
| Astro، ثابت | astro build | dist | إيقاف |
| Astro، خادم أو هجين | astro build | dist | تشغيل |
| Vite (React, Vue, Svelte) | npm run build | dist | إيقاف |
| SvelteKit | npm run build | build | يعتمد على المحول |
| Nuxt 3 | npm run build | .output | تشغيل |
| Remix | npm run build | build | تشغيل |
| Express أو API عادية Node | npm run build | dist | تشغيل |
| Create React App | npm run build | build | إيقاف |
| HTML عادية أو مولد ثابت | اترك فارغاً، أو أمر المولد الخاص بك | . أو المجلد الذي يكتبه | إيقاف |
يكتب Vite دائماً إلى dist ما لم تحدد build.outDir في vite.config.ts. مجلد إخراج Astro هو dist في كل وضع، ما يتغير بين الأوضاع هو ما إذا كنت تحتاج إلى وضع الخادم، وليس حيث تهبط الملفات.
وضع الخادم
وضع الخادم هو مفتاح تبديل في Settings، تحت Runtime. عندما يكون قيد التشغيل، يحافظ Orbit على جهاز البناء حياً يعمل npm start بعد كل نشر بدلاً من خدمة مجلد من الملفات الثابتة.
قم بتشغيله لـ Next.js مع SSR و Remix و Nuxt و Express API وأي شيء آخر ليس تصديراً ثابتاً. اتركه مطفأً لبناء ثابت حقيقي.
يتم تطبيقه من النشر التالي، وليس على النشر الذي يعمل حالياً.
الأعراض الكلاسيكية لوضع الخادم المفقود هي موقع حيث تحميل الصفحة الرئيسية بشكل مثالي وكل مسار ديناميكي يُرجع 404. البناء نجح، تم نشر الملفات، وببساطة لا يوجد خادم يعمل للإجابة على المسارات. إذا كان هذا ما تراه، قم بتشغيل وضع الخادم وأعد النشر قبل تغيير أي شيء آخر.
إصدار Node.js
حدد إصدار Node.js في Settings تحت إعدادات البناء. أدخل رقم الإصدار الرئيسي فقط: 18, 20 أو 22. اتركه فارغاً لاستخدام الإفتراضي للمنصة.
ينطبق الإصدار على كل من البناء وعند تشغيل وضع الخادم، وقت التشغيل.
قم بتثبيت الإصدار بشكل صريح بدلاً من الاعتماد على الافتراضي. الاعتماد الذي يتطلب Node أحدث من الافتراضي يفشل في التثبيت مع خطأ لا يقول ذلك بوضوح، وتثبيت الدبوس يزيل فئة كاملة من فشل البناء "عملت أمس".
Monorepos
قم بتعيين مجلد الجذر إلى المجلد الفرعي الذي يحتوي على التطبيق، على سبيل المثال apps/web. يتغير Orbit إلى هذا المجلد قبل تشغيل أوامر التثبيت والبناء الخاصة بك.
كما يفعل شيء تريده ولكن قد لا تتوقعه: يتم تخطي الدفعات التي تغير فقط الملفات خارج هذا المسار تلقائياً. يعيد بناء monorepo يحتوي على أربعة مشاريع Orbit فقط التطبيقات التي يلمسها الالتزام فعلاً.
يمكن لكل بيئة تجاوز مجلد الجذر بشكل منفصل، تحت التدريج: تجاوزات البناء في Settings، وهو مفيد عندما يبني التدريج مساحة عمل مختلفة.
إعدادات البناء المخصصة
تجاوز أي شيء في Settings، تحت إعدادات البناء:
| الحقل | مثال | ملاحظات |
|---|---|---|
| أمر التثبيت | npm ci | أو yarn install --frozen-lockfile, pnpm install --frozen-lockfile |
| أمر البناء | npm run build:prod | يعمل بالضبط كما هو مكتوب |
| مجلد الإخراج | dist/client | المجلد المنشور بعد البناء |
| مجلد الجذر | apps/frontend | مجلد فرعي من monorepo |
| إصدار Node.js | 20 | رقم الإصدار الرئيسي فقط |
فارغ يعني الكشف التلقائي. انقر على حفظ على بطاقة إعدادات البناء للتطبيق.
يمكن للتدريج تجاوز أي من هذه بشكل مستقل، في قسم التدريج: تجاوزات البناء. الحقل المترك فارغاً هناك يرث القيمة على مستوى المشروع، بحيث يمكنك تغيير أمر البناء للتدريج فقط وترك كل شيء آخر وحده.
ذاكرة التخزين المؤقت للبناء
يخزن Orbit node_modules بين البنايات في خطط Liftoff و Apex. عند استخدام الذاكرة المؤقتة، يعرض النشر شارة إصابة ذاكرة التخزين المؤقت وتكون مرحلة التثبيت أقصر بكثير. البناء بدونها يظهر بناء بارد.
لفرض إعادة تثبيت كاملة، افتح Settings، ثم مسح ذاكرة التخزين المؤقت للبناء، وأكد. يعمل النشر التالي لكل بيئة بتثبيت كامل من الصفر. لا يمكن التراجع عن هذا، وسيكون البناء الذي يليه بطيئاً.
موارد جهاز البناء
يعتمد حجم جهاز البناء على خطتك، وهو ما يهم للبناءات الكبيرة:
| الخطة | vCPU | RAM | Disk | حد الوقت |
|---|---|---|---|---|
| Launch | 1 | 1 GB | 4 GB | 30 دقيقة |
| Liftoff | 2 | 2 GB | 8 GB | 30 دقيقة |
| Apex | 4 | 4 GB | 16 GB | 30 دقيقة |
البناء الذي ينفد من الذاكرة أو يملأ قرصه يفشل مع فئة الفشل تلك المسماة على صفحة النشر. رفع NODE_OPTIONS=--max-old-space-size يساعد فقط حتى RAM الفعلية للجهاز.
البدء من قالب
إذا كنت تريد نشراً عاملاً قبل أن يكون لديك مستودع، استخدم قالب بادئ. على مشروع جديد، بدّل من استيراد Git Repo إلى البدء من القالب واختر واحداً: Next.js مع shadcn/ui، موقع تسويق Astro، Remix Indie Stack، مبتدئ SvelteKit، تطبيق Nuxt 3 بسيط، أو REST API Express. ينسخ Orbit القالب، يطبق إعدادات البناء الصحيحة، وينشره.
قراءة ذات صلة
- تكوين أمر البناء ومجلد الإخراج الخاص بك للتفاصيل لكل إطار عمل والأخطاء المعتادة
- استكشاف أخطاء البناء الفاشل
- حدود خطة Orbit