2013-03-21 16 views
6

Bazı yeni bağımlılık veya başka lanet şey okurken bir get push heroku master dağıtmak sırasında hata UÖM'sini neden olan: gerçektenHeroku: dağıtmak sırasında npm hatalarını giderme - a/tmp dosyası

-----> Node.js app detected 
-----> Resolving engine versions 
     Using Node.js version: 0.10.1 
     Using npm version: 1.2.15 
-----> Fetching Node.js binaries 
-----> Vendoring node into slug 
-----> Installing dependencies with npm 
     .... 
     npm ERR! Additional logging details can be found in: 
     npm ERR!  /tmp/build_24pmtv04ok0ss/npm-debug.log 
     npm ERR! not ok code 0 

not ok. Konsolda basılmış başka yararlı bilgiler yok, tabiki bu dosyada ne olduğunu görmek istiyorum.

Bu yüzden bu biraz denemek:

Running `cat /tmp/build_24pmtv04ok0ss/npm-debug.log` attached to terminal... up, run.3166 
cat: /tmp/build_24pmtv04ok0ss/npm-debug.log: No such file or directory 

Benim sorular şu şekilde olacaktır:

$ heroku run cat /tmp/build_24pmtv04ok0ss/npm-debug.log 

Ancak, böyle bir dosya var görünmüyor günlüğü yaptılar

  • dosya gitmek? Neden onu okuyamıyorum?
  • Heroku/npm'nin konsolda yazdırılan ayrıntılı bir hata vermesi için başka bir yol var mı?
  • Neden aynı düğüm ortamı tam olarak yerel olarak çalışıyor, ancak Heroku'da başarısız oluyor?

cevap

6

Kodunuzu Heroku'ya bastığınızda, derlemeniz geçici bir yapı dyno üzerinde çalışır, bu nedenle derleme tamamlandıktan sonra, dynos'un bir ephemeral file systems olması nedeniyle tüm dosyalar kaybolur. heroku run cat /tmp/build_24pmtv04ok0ss/npm-debug.log'un yardım etmemesinin nedeni, mevcut uygulamanızın yeni bir dosya sistemi ile one-off dyno'a bağlı olmanızdır (yapı dyno'undan tamamen ayrıdır).

Tüm umutlar kaybolmaz.

function cat_npm_debug_log() { 
    if [ -f $BUILD_DIR/npm-debug.log ]; then 
    cat $BUILD_DIR/npm-debug.log 
    fi 
} 

trap cat_npm_debug_log EXIT 

iyice test etmedim ama do what I just showed above için default Node buildpack hızlı fork yaptı: Böyle Çıkışta npm-debug.log üzerinden cat için tweaking the buildpack tarafından neler olduğunu görmek mümkün olmalıdır. setting it as a custom buildpack tarafından denemek için çekinmeyin: Özel bir yapı paketini kullanarak tüm sorun üzerinden gitmeden önce

heroku config:add BUILDPACK_URL="https://github.com/ryanbrainard/heroku-buildpack-nodejs.git" 
+1

SİZE BİR SİHİRBAZ, bu tamamen hile yaptı. Yay Heroku. Hatta çok şey öğrendim. BTW, beni kederleyen paket, hiç kimsenin umurunda değilse, 'tövbe-ifade' oldu. – bugeats

+0

Sevindim, senin için çalıştı. Sadece değişiklikimi [çekme isteği] olarak gönderdim (https://github.com/heroku/heroku-buildpack-nodejs/pull/34). – ryanbrainard

+1

Bu düzeltme, resmi Heroku Node.js derleme paketine birleştirildi: https://github.com/heroku/heroku-buildpack-nodejs/commit/06f629ce1d3517302f1d7d5bf89d214ef4b1600e – Zeke