Orbit

आपके बिल्ड कमांड और आउटपुट डायरेक्टरी को कॉन्फ़िगर करना

Getting Orbit to build your project correctly comes down to a handful of fields in Settings: install command, build command, output directory, root directory and Node.js version. Left blank they are…

अपनी बिल्ड कमांड और आउटपुट डायरेक्टरी कॉन्फ़िगर करना

Orbit को आपके प्रोजेक्ट को सही तरीके से बिल्ड करने के लिए Settings में कुछ फील्ड की आवश्यकता होती है: इंस्टॉल कमांड, बिल्ड कमांड, आउटपुट डायरेक्टरी, रूट डायरेक्टरी और Node.js संस्करण। जब ये खाली रहते हैं तो स्वचालित रूप से पहचाने जाते हैं, और अधिकांश पहली बार तैनाती की समस्याएं स्वचालित रूप से पहचाने गए मान से आती हैं जो आपके फ्रेमवर्क वास्तव में लिखता है उससे मेल नहीं खाता।

सेटिंग्स कहाँ खोजें

अपने प्रोजेक्ट को Orbit में खोलें, Settings टैब पर जाएँ, और Build settings कार्ड खोजें।

फील्डयह क्या करता हैखाली होने पर प्लेसहोल्डर
इंस्टॉल कमांडबिल्ड से पहले डिपेंडेंसी कैसे इंस्टॉल की जाती हैंnpm ci (auto-detected)
बिल्ड कमांडवह कमांड जो आपका आउटपुट बनाती हैnpm run build (auto-detected)
आउटपुट डायरेक्टरीवह फ़ोल्डर जिसे Orbit बिल्ड के बाद प्रकाशित करता हैdist (auto-detected)
रूट डायरेक्टरीमोनोरेपोस के लिए, आपके ऐप्लिकेशन वाली सबडायरेक्टरी/ (monorepo subdirectory)
Node.js संस्करणबिल्ड और रन करने के लिए प्रमुख Node संस्करणप्लेटफॉर्म डिफ़ॉल्ट

Orbit को स्वचालित रूप से पहचानने देने के लिए किसी भी फील्ड को खाली छोड़ें। Build settings कार्ड पर Save पर क्लिक करें।

Orbit प्रोजेक्ट सेटिंग्स में बिल्ड सेटिंग्स कार्ड

बिल्ड सेटिंग को बदलने से वर्तमान में लाइव डिप्लॉयमेंट नहीं बदलता है। नई सेटिंग अगली डिप्लॉयमेंट से लागू होती है। सहेजने के बाद फिर से तैनात करें, अन्यथा कुछ नहीं बदला दिखेगा।

फ्रेमवर्क डिफ़ॉल्ट

Next.js

Next.js के Orbit में दो मोड हैं, और गलत मोड चुनना सबसे आम पहली बार तैनाती की गलती है।

Static export (output: 'export' में next.config.js):

  • बिल्ड कमांड: npm run build
  • आउटपुट डायरेक्टरी: out
  • Server mode: बंद

Server mode (SSR या ISR), जो अधिकांश Next.js ऐप्स हैं:

  • Settings में Server mode चालू करें, Runtime के अंतर्गत
  • बिल्ड कमांड: npm run build
  • आउटपुट डायरेक्टरी: .next

Server mode सक्षम किए बिना, एक सर्वर-रेंडर किए गए Next.js ऐप को स्थैतिक फ़ाइलों के रूप में प्रकाशित किया जाता है। होम पेज आमतौर पर लोड हो जाएगा और हर डायनामिक रूट 404 होगा। यदि वह आपका लक्षण है, तो यह आपका कारण है: server mode चालू करें और कुछ और बदलने से पहले फिर से तैनात करें।

Astro

Astro की आउटपुट फ़ोल्डर हर मोड में dist है। जो बदलता है वह यह है कि क्या आपको server mode की आवश्यकता है।

  • output: 'static', डिफ़ॉल्ट: आउटपुट डायरेक्टरी dist, server mode बंद
  • output: 'server' या output: 'hybrid': आउटपुट डायरेक्टरी dist, server mode चालू
  • बिल्ड कमांड: npm run build, या astro build

Vite (React, Vue, Svelte)

  • बिल्ड कमांड: npm run build, या vite build
  • आउटपुट डायरेक्टरी: dist

Vite हमेशा dist को लिखता है जब तक आपने build.outDir को vite.config.ts में ओवरराइड नहीं किया हो। यदि आपने किया है, तो आउटपुट डायरेक्टरी को मिलान करने के लिए सेट करें।

SvelteKit

  • बिल्ड कमांड: npm run build
  • आउटपुट डायरेक्टरी: build

क्या आपको server mode की आवश्यकता है यह आपके एडाप्टर पर निर्भर करता है: एक स्थैतिक एडाप्टर को नहीं, एक Node एडाप्टर को करता है।

Nuxt 3

  • बिल्ड कमांड: npm run build
  • आउटपुट डायरेक्टरी: .output
  • Server mode: चालू

Remix

  • बिल्ड कमांड: npm run build
  • आउटपुट डायरेक्टरी: build
  • Server mode: चालू

Express या एक सादा Node API

  • बिल्ड कमांड: npm run build
  • आउटपुट डायरेक्टरी: dist
  • Server mode: चालू

Server mode बिल्ड के बाद npm start चलाता है, इसलिए सुनिश्चित करें कि आपकी start स्क्रिप्ट मौजूद है और सर्वर शुरू करती है।

Create React App

Create React App को अपस्ट्रीम से हटा दिया गया है और नई प्रोजेक्ट के लिए अच्छा विकल्प नहीं है, लेकिन मौजूदा प्रोजेक्ट सही तरीके से बिल्ड होते हैं।

  • बिल्ड कमांड: npm run build
  • आउटपुट डायरेक्टरी: build

साधारण HTML या एक Static Site Generator

  • इंस्टॉल कमांड को खाली छोड़ें यदि कोई package.json नहीं है
  • बिल्ड कमांड को खाली छोड़ें रिपॉजिटरी को जैसे है वैसे प्रकाशित करने के लिए, या अपने जेनरेटर की कमांड सेट करें
  • आउटपुट डायरेक्टरी: रिपॉजिटरी रूट के लिए ., या कोई भी फ़ोल्डर जो जेनरेटर लिखता है

Node.js संस्करण

केवल प्रमुख संस्करण संख्या दर्ज करें: 18, 20 या 22। फील्ड हिंट स्पष्ट रूप से कहता है। कुछ और, जैसे 20.11.0 या v20, वह नहीं है जो यह फील्ड अपेक्षा करता है।

संस्करण बिल्ड पर लागू होता है और, जब server mode चालू हो, तो रनटाइम पर भी।

डिफ़ॉल्ट पर भरोसा करने के बजाय संस्करण को पिन करें। एक डिपेंडेंसी जिसे नए Node की आवश्यकता है वह इंस्टॉल के दौरान एक त्रुटि के साथा विफल हो जाता है जो शायद ही कभी "गलत Node संस्करण" कहता है, और पिन करने से यह विफलता का क्लास पूरी तरह से हटा देता है।

मोनोरेपोस

Root directory को अपने ऐप के पथ पर सेट करें, उदाहरण के लिए apps/web। Orbit आपकी इंस्टॉल और बिल्ड कमांड चलाने से पहले उस डायरेक्टरी में बदल जाता है, और आउटपुट डायरेक्टरी तब इसके सापेक्ष होती है।

फील्ड हिंट दूसरे, अधिक उपयोगी व्यवहार को स्पष्ट करता है: पुश करता है कि उस पथ के बाहर की फ़ाइलें स्वचालित रूप से छोड़ दी जाती हैं। चार Orbit प्रोजेक्ट वाले एक मोनोरेपो में केवल वे ऐप्स फिर से बनते हैं जिन्हें एक प्रतिबद्धता वास्तव में छूती है, जो समय और बिल्ड मिनट दोनों बचाता है।

प्रत्येक वातावरण Settings में Staging: build overrides के अंतर्गत रूट डायरेक्टरी को स्वतंत्र रूप से ओवरराइड कर सकता है, जो तब उपयोगी होता है जब staging एक अलग वर्कस्पेस बनाता है।

Staging ओवरराइड

यदि आपके प्रोजेक्ट में एक staging वातावरण है, तो Settings एक Staging: build overrides अनुभाग दिखाता है जिसमें समान फील्ड हैं। वहाँ छोड़ी गई कोई भी फील्ड प्रोजेक्ट-स्तर के मान को इनहेरिट करती है, इसलिए आप केवल staging के लिए बिल्ड कमांड बदल सकते हैं, उदाहरण के लिए npm run build:staging, और बाकी सब कुछ अकेला छोड़ सकते हैं।

Staging के पास पास में अपनी संबंधित सेटिंग हैं: एक शाखा, एक एक्सेस पासवर्ड, एक IP allowlist, विफलता पर auto-rollback, और एक Inherit production env vars टॉगल।

Build Cache

Orbit Liftoff और Apex प्लान पर बिल्ड के बीच node_modules को कैश करता है। डिप्लॉयमेंट विवरण पृष्ठ Cache hit या Cold build दिखाता है, साथ ही इंस्टॉल फेज अवधि, इसलिए आप देख सकते हैं कि कैश आपके प्रोजेक्ट पर क्या काम है।

पूरी तरह से पुनः इंस्टॉल करने के लिए, Settings खोलें, Clear build cache पर क्लिक करें, और पुष्टि करें।

बिल्ड कैश को साफ करना पूर्ववत नहीं किया जा सकता है, और हर वातावरण की अगली डिप्लॉयमेंट शुरुआत से एक पूर्ण इंस्टॉल चलाता है। एक बड़े मोनोरेपो पर वह एक धीमी बिल्ड है, इसलिए इसे सचेतन रूप से करें न कि प्रतिक्रिया के रूप में।

Common Gotchas

"Build सफल रहा लेकिन साइट 404 दिखाता है।" आउटपुट डायरेक्टरी गलत है: Orbit ने एक फ़ोल्डर प्रकाशित किया जो आपका बिल्ड आउटपुट नहीं है। जाँचें कि आपकी बिल्ड वास्तव में कौन सी फ़ोल्डर बनाती है। Vite dist लिखता है, Next.js static export out लिखता है, Next.js server mode .next का उपयोग करता है, Create React App और Remix build लिखते हैं, Nuxt .output लिखता है।

"केवल डायनामिक routes पर 404, home page ठीक है।" Server mode को एक ऐप पर बंद किया गया है जिसे इसकी आवश्यकता है। ऊपर Next.js अनुभाग देखें।

"Module not found" पहली बार तैनाती पर। इंस्टॉल स्टेप चलाया नहीं गया, या यह आपके द्वारा स्थानीय रूप से उपयोग किए जाने वाले एक से अलग पैकेज मैनेजर के साथ चलाया गया। इंस्टॉल कमांड को स्पष्ट रूप से सेट करें: npm ci, yarn install --frozen-lockfile, या pnpm install --frozen-lockfile। यह भी जाँचें कि आपने बिल्कुल एक lockfile प्रतिबद्ध किया है: यदि package-lock.json और yarn.lock दोनों रिपॉजिटरी में हैं, तो पहचाना गया पैकेज मैनेजर वह नहीं हो सकता जो आप अपेक्षा करते हैं।

"Lockfile पुरानी है।" npm ci और frozen-lockfile समकक्ष जब lockfile package.json से असहमत होता है तो चलने से इनकार करते हैं। अपने पैकेज मैनेजर को स्थानीय रूप से इंस्टॉल करें और पुनर्जन्मित lockfile को प्रतिबद्ध करें। यह सबसे आम पहली बार तैनाती विफलता है और यह कभी स्थानीय रूप से पुन: प्रस्तुत नहीं होता है, जो बिल्कुल वही कारण है कि यह भ्रमित करने वाला है।

"मेरे monorepo में केवल एक ऐप तैनात हो रहा है।" वह रूट डायरेक्टरी अपना काम कर रही है। प्रत्येक ऐप को अपने स्वयं के Orbit प्रोजेक्ट और अपनी स्वयं की रूट डायरेक्टरी की आवश्यकता है।

"गलत Node.js संस्करण।" Node.js संस्करण फील्ड को केवल प्रमुख संस्करण संख्या पर सेट करें।

बिल्ड मेमोरी से बाहर चली जाती है या डिस्क को भर देती है। दोनों बिल्ड मशीन पर प्लान सीमाएँ हैं: Launch को 1 vCPU, 1 GB RAM और 4 GB डिस्क मिलता है; Liftoff को 2, 2 GB और 8 GB मिलता है; Apex को 4, 4 GB और 16 GB मिलता है। NODE_OPTIONS=--max-old-space-size=2048 को एक वातावरण वेरिएबल के रूप में जोड़ना मशीन की वास्तविक RAM तक ही मदद करता है। Orbit Plan Limits देखें।

संबंधित पढ़ना

क्या आपको अभी भी सहायता की आवश्यकता है?

हमें ईमेल करें support@kapsulehost.com या KPanel में चैट खोलें।

KPanel खोलें
आपके बिल्ड कमांड और आउटपुट डायरेक्टरी को कॉन्फ़िगर करना