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.jsonnpm देता है,yarn.lockyarn देता है,pnpm-lock.yamlpnpm देता है।
Settings में बिल्ड सेटिंग्स सभी वैकल्पिक हैं। एक फ़ील्ड खाली छोड़ें और इसका प्लेसहोल्डर आपको बताता है कि इसके बजाय क्या उपयोग किया जाएगा: Install command npm ci (auto-detected) दिखाता है, Build command npm run build (auto-detected) दिखाता है, और Output directory 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 या एक सादा Node API | 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 with SSR, Remix, Nuxt, एक Express API, और कुछ भी जो स्थिर निर्यात नहीं है, के लिए इसे चालू करें। एक वास्तविक स्थिर बिल्ड के लिए इसे बंद छोड़ें।
यह अगली डिप्लॉय से लागू होता है, वर्तमान में लाइव डिप्लॉयमेंट के लिए नहीं।
लापता सर्वर मोड का क्लासिक लक्षण एक साइट है जहां होम पेज पूरी तरह लोड होता है और हर गतिशील मार्ग 404 लौटाता है। बिल्ड सफल हुई, फ़ाइलें प्रकाशित की गईं, और बस कोई सर्वर नहीं है जो मार्ग का जवाब देने के लिए चल रहा है। यदि यह वही है जो आप देख रहे हैं, सर्वर मोड चालू करें और कुछ और बदलने से पहले फिर से तैनात करें।
Node.js संस्करण
Settings में Build settings के अंतर्गत Node.js version सेट करें। केवल मेजर संस्करण संख्या दर्ज करें: 18, 20 या 22। प्लेटफॉर्म डिफ़ॉल्ट का उपयोग करने के लिए इसे खाली छोड़ दें।
यह संस्करण बिल्ड और, जब सर्वर मोड चालू हो, रनटाइम दोनों पर लागू होता है।
डिफ़ॉल्ट पर भरोसा करने के बजाय संस्करण को स्पष्ट रूप से पिन करें। एक निर्भरता जिसके लिए नए Node की आवश्यकता होती है डिफ़ॉल्ट से स्पष्ट रूप से इंस्टॉल विफल करता है, और पिन करना "कल यह काम करता था" बिल्ड विफलताओं की एक पूरी कक्षा को हटाता है।
मोनोरेपोस
Root directory को उस सबडायरेक्टरी में सेट करें जिसमें ऐप है, उदाहरण के लिए apps/web। Orbit आपकी इंस्टॉल और बिल्ड कमांड चलाने से पहले उस डायरेक्टरी में बदलता है।
यह कुछ ऐसा भी करता है जो आप चाहते हैं लेकिन हो सकता है कि प्रत्याशा न हो: केवल उन फ़ाइलों को बदलने वाली पुशें स्वचालित रूप से छोड़ दी जाती हैं। चार Orbit प्रोजेक्ट वाला मोनोरेपो इसलिए केवल उन ऐप्स को फिर से बनाता है जो एक कमिट वास्तव में छुआ है।
प्रत्येक परिवेश रूट डायरेक्टरी को अलग से ओवरराइड कर सकता है, Settings में Staging: build overrides के अंतर्गत, जो तब उपयोगी है जब स्टेजिंग एक अलग वर्कस्पेस बनाता है।
कस्टम बिल्ड सेटिंग्स
Settings में कुछ भी ओवरराइड करें, Build settings के अंतर्गत:
| फील्ड | उदाहरण | नोट्स |
|---|---|---|
| इंस्टॉल कमांड | npm ci | या yarn install --frozen-lockfile, pnpm install --frozen-lockfile |
| बिल्ड कमांड | npm run build:prod | बिल्कुल जैसा लिखा है चलाएं |
| आउटपुट डायरेक्टरी | dist/client | बिल्ड के बाद प्रकाशित फ़ोल्डर |
| रूट डायरेक्टरी | apps/frontend | मोनोरेपो सबडायरेक्टरी |
| Node.js संस्करण | 20 | केवल मेजर संस्करण |
खाली मतलब ऑटो-डिटेक्ट। Build settings कार्ड पर Save क्लिक करें लागू करने के लिए।
स्टेजिंग इनमें से किसी को स्वतंत्र रूप से ओवरराइड कर सकता है, Staging: build overrides सेक्शन में। वहां एक खाली फील्ड प्रोजेक्ट-स्तरीय मान को विरासत में देता है, इसलिए आप केवल स्टेजिंग के लिए बिल्ड कमांड बदल सकते हैं और बाकी सब कुछ को अकेला छोड़ सकते हैं।
बिल्ड कैश
Orbit Liftoff और Apex प्लानों पर बिल्ड के बीच node_modules को कैश करता है। जब कैश का उपयोग किया जाता है, तो डिप्लॉयमेंट Cache hit बैज दिखाता है और इंस्टॉल चरण बहुत कम होता है। बिना इसके बिल्ड Cold build दिखाता है।
संपूर्ण पुनः स्थापना को बाध्य करने के लिए, Settings खोलें, फिर Clear build cache, और पुष्टि करें। प्रत्येक वातावरण के लिए अगली डिप्लॉयमेंट शुरुआत से पूरी इंस्टॉल चलाता है। यह पूर्ववत नहीं किया जा सकता, और इसके बाद की बिल्ड धीमी होगी।
बिल्ड मशीन संसाधन
बिल्ड मशीन का आकार आपकी योजना पर निर्भर करता है, जो बड़ी बिल्ड के लिए महत्वपूर्ण है:
| योजना | vCPU | RAM | डिस्क | समय सीमा |
|---|---|---|---|---|
| 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 तक मदद करता है।
टेम्पलेट से शुरू करना
यदि आप एक रिपॉजिटरी होने से पहले एक कार्यशील डिप्लॉयमेंट चाहते हैं, तो स्टार्टर टेम्पलेट का उपयोग करें। New project पर, Import Git Repo से Start from Template पर स्विच करें और एक चुनें: shadcn/ui के साथ Next.js, एक Astro मार्केटिंग साइट, Remix Indie Stack, एक SvelteKit स्टार्टर, एक न्यूनतम Nuxt 3 ऐप, या एक Express REST API। Orbit टेम्पलेट की प्रतिलिपि बनाता है, सही बिल्ड सेटिंग्स लागू करता है, और इसे तैनात करता है।
संबंधित पढ़ना
- अपनी बिल्ड कमांड और आउटपुट डायरेक्टरी कॉन्फ़िगर करना प्रति-फ्रेमवर्क विस्तार और सामान्य गलतियों के लिए
- विफल बिल्ड को ट्रबलशूट करना
- Orbit योजना सीमाएं