Orbit
Başarısız Derlemelerin Sorunlarını Giderme
When an Orbit build fails, the deployment detail page gives you the full log plus a categorised failure summary and a suggested fix. This guide walks through reading that page, the failures Orbit…
Bir Orbit derlemesi başarısız olduğunda, dağıtım ayrıntıları sayfası size tam günlük artı kategorize edilmiş bir başarısızlık özeti ve önerilen bir düzeltme sağlar. Bu kılavuz, bu sayfayı okumayı, Orbit'in ada göre tanıdığı başarısızlıkları, tanımadığı başarısızlıkları ve bir derleme başarılı olduğunda ancak site yine de yanlış olduğunda ne yapılacağını açıklar.
Başarısızlığı Okuma
- Projenizi Orbit'te açın.
- Dağıtımlar sekmesini açın.
- Durumu Başarısız olan dağıtıma tıklayın.
- Günlüğün üzerindeki başarısızlık özetini ilk olarak okuyun, ardından günlüğün kendisini okuyun.

Orbit her başarısızlığa bir kategori atar: Bellek yetersiz, Derleme hatası, Test başarısızlığı, Lint hatası, Yükleme hatası, Ağ hatası, Zaman aşımı veya Bilinmeyen hata. Kategori, tek bir günlük satırı okumadan önce hangi boru hattı bölümüne bakılacağını size söyler.
Ayrıca bir AI tanı al düğmesi vardır. Günlüğün son 120 satırını algılanan çerçeve ve başarısızlık kategorisi ile birlikte okur ve düz dildeki bir açıklama döndürür.
Tanı AI tarafından oluşturulur, hareket etmeden önce doğrulayın olarak etiketlenmiştir. Bunu, kodunuzun otoritesi değil, günlüğün doğru satırına çok iyi bir işaretçi olarak ele alın. Herhangi bir şey değiştirmeden önce başvurduğu satırı okuyun.
Derleme hiçbir zaman başlamadıysa ve Sıraya alındı durumunda takılıysa, aşağıdaki sıraya alınan derlemeler bölümüne geçin.
Orbit'in Ada Göre Tanıdığı Başarısızlıklar
Bunlar dağıtım sayfasında belirli bir önerilen düzeltme ile birlikte gelir.
| Orbit'in algıladığı | Anlamı | Düzeltme |
|---|---|---|
| Eksik modül | Bir içe aktarma, yüklü olmayan bir pakete işaret eder | Paketi package.json öğesine ekleyin ve işleyin veya içe aktarma yolunda typo'yu düzeltin |
ERESOLVE çakışması | npm eş bağımlılığı karşılayamaz | package.json öğesindeki çakışmayı çözün veya Ayarlar'daki yükleme komutumuza --legacy-peer-deps ekleyin |
| TypeScript hatası | Derleme sırasında tür kontrolü başarısız oldu | Listelenen hataları düzeltin. Üçüncü taraf türü sorunları için, skipLibCheck: true içinde tsconfig.json |
| Bellek yetersiz | Derleme, derleme makinesinin RAM'ini aştı | Bir ortam değişkeni olarak NODE_OPTIONS=--max-old-space-size=2048 ekleyin veya daha büyük derleme makinesine sahip bir plana taşıyın |
| Derleme diski dolu | Derleme diskini doldurdu | Beklenmedik şekilde büyük bir node_modules veya yapıt arayın veya daha büyük derleme diskine sahip bir plana taşıyın |
| Derleme zaman aşımına uğradı | Derleme 30 dakikalık durdurma limitine ulaştı | Derleme önbelleğini etkinleştirin, paket boyutunu azaltın veya neyin asılı kaldığını bulun |
| Paket bulunamadı (404) | Bir bağımlılık bu ad veya sürümde mevcut değil | package.json öğesinde typo kontrolü yapın veya paketin yayınlandığını doğrulayın |
| ESLint hataları | Lint hataları derlemeyi engelledi | Bunları düzeltin veya framework yapılandırmanızda lint'in derlemede başarısız olmasını durdurun |
| Söz dizimi hatası | Ayrıştırılamayan kaynak | Eksik köşeli ayraç, kapalı olmayan dize veya Node sürümünün desteklemediği söz dizimi |
| Dosya bulunamadı | Başvurulan dosya depo içinde değil | Dosyanın işlendiğini doğrulayın ve yolun durumunu kontrol edin |
| Kilit dosyası güncel değil | Kilit dosyası package.json ile eşleşmiyor | Paket yöneticinizin yüklemesini yerel olarak çalıştırın ve güncellenmiş kilit dosyasını işleyin |
Kilit dosyası uyuşmazlığı, en yaygın ilk dağıtım başarısızlığı ve en kafa karıştırıcı olanıdır, çünkü yerel olarak asla gerçekleşmez. npm ci, yarn install --frozen-lockfile ve pnpm install --frozen-lockfile, kilit dosyası package.json ile anlaşmazlık olduğunda ilerlemeyi reddeder. Kilit dosyasını yerel olarak yeniden oluşturun ve işleyin.
Faz Başına Yaygın Başarısızlıklar
Bağımlılık Yüklemesi Başarısız Oluyor
Yükleme aşaması hata verdi.
- Yanlış paket yöneticisi. Orbit, kilit dosyanızdan npm, yarn veya pnpm'i seçer. Birden fazla kilit dosyası işlenmişse, seçim beklediğiniz olmayabilir. Kullanmadığınız olanları silin veya Ayarlar öğesinde Yükleme komutu açıkça ayarlayın.
- Özel kayıt defteri. Bir bağımlılık özel bir kayıt defterinden gelirse, kimlik doğrulama belirtecinin derleme zamanında bir ortam değişkeni olarak kullanılabilir olması ve
.npmrcdeğişkeniniz buna başvurmalıdır. - Node.js sürümü uyuşmazlığı. Bazı paketler minimum Node sürümü gerektirir. Ayarlar öğesinde Node.js sürümü öğesini ana sürüm numarasına ayarlayın:
18,20veya22. - Büyük monorepo'da bellek yetersiz.
npm ciyerinenpm installkullanın ve daha büyük derleme makinesine sahip bir plan düşünün.
Derleme Komutu Başarısız Oluyor
Derleme aşaması hata verdi.
- TypeScript veya lint hataları. Orbit derleme komutunuzu tam olarak yazıldığı gibi çalıştırır. Derlemesi yerel olarak başarısız olursa, burada da başarısız olur.
- Eksik derleme zamanı ortam değişkeni. Derleme sırasında okunan bir değişken, çalışma zamanında değil, derleme çalışmadan önce var olmalıdır. Env vars sekmesine ekleyin ve yeniden dağıtın. Bir dağıtımdan sonra eklenen bir derleme zamanı değişkeni, kendisine geriye dönük olarak uygulanmaz.
- Monorepo'da yanlış kök dizini. Ayarlar öğesinde Kök dizini öğesini uygulamanın yoluna ayarlayın, örneğin
apps/web.
Derleme Zaman Aşımına Uğradı
Derlemeler her plan üzerinde 30 dakikalık duvar saati zamanında durdurulur. Sizin sürekli olarak buna yaklaşıyorsa:
- Giriş bekleyen bir işlem için günlüğü kontrol edin. İstekte bulunan bir derleme, asılı kalan bir derlemedir.
- İhtiyaç duymadığınız sürece büyük bir bağımlılık ağacında
--legacy-peer-depskullanmaktan kaçının. - Derleme önbelleğinin kullanıldığından emin olun. Liftoff ve Apex planları bunu içerir; dağıtım sayfası Önbellek isabet veya Soğuk derleme gösterir.
- Daha fazla derleme vCPU'su olan bir plana geçin. Orbit Plan Sınırları öğesini inceleyin.
Derleme Hiçbir Zaman Başlamıyor
Sıraya alındı durumunda takılı kalan bir dağıtım, bir derleme yuvası için bekliyor. Ayrıntı sayfası sıra konumunuzu ve kaç eş zamanlı derleme yuvanızın kullanımda olduğunu gösterir ve birisi boşaldığında derlemeyi otomatik olarak başlatır. Launch ve Liftoff bir eş zamanlı derlemeye izin verir; Apex üçe izin verir.
Hesabınız genelinde uçuş halindeki her şeyi Orbit öğesinde, ardından Kuyruk öğesinde görebilirsiniz.
Bir dağıtım, başka hiçbir şey çalışmadığı halde sıraya alınan durumda oturuyorsa, büyük olasılıkla kuyruğa alınmaktan ziyade tutuluyordur. Şunları kontrol edin:
- Onay bekliyor, Üretim için onay iste açıksa
- Projedeki bir dağıtım kilidi
- Geçerli saati veya günü engelliyorsa bir dağıtım donma zamanlaması
- CI gerekli kontroller boru hattınız üzerinde bekliyor
- Üretimden önce hazırlama başarısı iste aynı işlemenin bir hazırlama dağıtımını bekliyor
Derleme Tamamen Atlandı
Bir push hiç dağıtım üretmediyse, büyük olasılıkla kasten filtrelenmiştir:
- Yoksayılan yollar: gönderilen her dosya
*.mdveyadocs/**gibi bir desene eşleşmiştir - Dal yoksayma desenleri: dal
dependabot/*gibi bir şeyle eşleşmiştir - Kök dizini: gönderilen hiçbir şey bu proje için monorepo alt dizinine dokunmadı
- Dal önizlemeleri kapalı ve push üretim veya hazırlamaya değildi
Derleme Başarılı Ancak Site Yanlış
Yeşil bir derleme ve kırık bir site, neredeyse her zaman bir kod sorunu değil yapılandırma sorunudur.
Her sayfada 404. Çıkış dizini yanlış: Orbit, derleme çıktınız olmayan bir klasörü yayınladı. Derlemeleriniz gerçekten neyi yazdığını kontrol edin. Yaygın değerler dist, .next, out, build ve .output öğesidir.
Yalnızca dinamik rotaları üzerinde 404. Uygulama çalışan bir sunucu gerektirir ve statik dosyalar olarak sunulur. Ayarlar öğesinde Çalışma Zamanı altında Sunucu modu öğesini açın. Bu, SSR içeren Next.js, Remix, Nuxt ve statik dışa aktarma olmayan diğer her şey için gereklidir.
Dağıtımdan sonra varlık 404, sitede zaten olan kullanıcılar için. Eski sayfayı yüklediler ve artık mevcut olmayan eski paket URL'lerini istiyorlar. Ayarlar öğesinde Eğrilik koruması öğesini açın; bu, yeni bir dağıtım canlı gittikten sonra bir bekletme penceresi için önceki derlememenin yapıtlarını kullanılabilir tutar.
Ortam değişkeni çalışma zamanında tanımsız. Değişkenin kapsamının gerçekten bu ortamı kapsadığını ve dağıtımın değişiklikten sonra geldiğini doğrulayın. Dağıtım ayrıntısı sayfası, derleme zamanında enjekte edilen tam olarak hangi anahtarları listelenir ve bunları geçerli yapılandırmanızla karşılaştırır.
Framework başına derleme ayarları Derleme Komutu ve Çıkış Dizinini Yapılandırma öğesinde bulunur.
Yeniden Deneme
Başarısız dağıtım sayfasında:
- Derlemeyi yeniden dene aynı işlemeyi yeniden çalıştırır.
- Daha fazla yeniden deneme seçeneği, ardından Temizlenen önbellek ile yeniden dene, önce derleme önbelleğini siler.
Ayrıca Orbit'i sizin için yeniden denemesine sahip olabilirsiniz. Ayarlar öğesindeki Derleme otomatik yeniden deneme, bir ağ hatası veya zaman aşımı gibi altyapı hataları nedeniyle başarısız olan derlemeleri üç kez kuyruğa yeniden alır. Kasıtlı olarak kod hatalarını yeniden denemez, bu nedenle derleme, lint veya test hatası asla döngü girmez.
Temizlenen önbellek ile yeniden deneme, ortam için önbelleğe alınan node_modules öğesini siler ve geri alınamaz. Sonrasındaki derleme yavaş olacaktır. Bu amacın kendisi, ancak büyük monorepo üzerinde bunu kendiliğinden yapma.
Kötü Bir Derlemenin Kullanıcılara Ulaşmasını Durdurma
Bir dağıtım zaten canlı gittiyse ve bir şeyleri kırıp verdiyse, basın altında ileri taşımaya çalışmak yerine geri alın. Geri alma, önceden oluşturulmuş bir yapıyı yükseltir ve saniyeler sürer. Dağıtımı Geri Alma öğesini inceleyin.
Araştırırken daha fazla dağıtımı durdurmak için, projedeki Dağıtımları kilitle öğesine tıklayın. İtme tarafından tetiklenen dağıtımlar, kilidini açana kadar atlanır, ancak düzeltmeyi gönderebilmeniz için manuel dağıtımlar yine de çalışır.
Ayrıca Orbit'i bunu otomatik olarak yapmasını sağlayabilirsiniz: Başarısızlık sırasında otomatik geri alma, üretim dağıtımı başarısız olduğunda son sağlıklı dağıtımı geri yükler ve Sağlık kontrolü yolu yeni dağıtım 15 saniye içinde 2xx ile yanıt vermediğinde onu geri yükler.
Hala Takılı
Günlük sadece hata iletisi olmadan biterse, derleme işlemi büyük olasılıkla öldürüldü: bellek yetersiz veya derleme makinesi talep edildi. Bir kez yeniden deneyin. Aynı şekilde iki kez başarısız olursa, KPanel'den bir bilet açın veya support@kapsulehost.com adresine e-posta gönderin ve ayrıntı sayfasında gösterilen dağıtım kimliğini ekleyin.