2013-03-21 64 views
6

一些新的依賴或其他一些該死的東西,是一個get push heroku master部署過程中引起NPM錯誤:的Heroku:部署在故障診斷NPM錯誤 - 讀/ tmp文件

-----> 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確實如此。沒有其他有用的信息輸出到控制檯,所以當然我想查看該日誌文件中的內容。

因此,我想這一點:

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

但是,沒有這樣的文件似乎存在:

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 

我的問題是這樣的:

  • 哪兒來的日誌文件去?爲什麼我不能讀它?
  • 是否有任何其他方式Heroku/npm給我一個詳細的錯誤打印到控制檯?
  • 爲什麼完全相同的節點環境在本地工作正常,但在Heroku上失敗?

回答

6

當你把代碼的Heroku,您的構建是一個臨時構建測功機上運行,​​所以一旦構建完成後,所有的文件都沒有了,因爲DYNOS有ephemeral file systemsheroku run cat /tmp/build_24pmtv04ok0ss/npm-debug.log沒有幫助的原因是您使用現有應用程序的新文件系統(完全獨立於構建測試程序)附加到one-off dyno

所有的希望都不會丟失。你應該能夠看到發生了什麼事情通過tweaking the buildpackcatnpm-debug.log退出這樣的:

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 

我還沒有徹底的測試,但我做了default Node buildpack的快速forkdo what I just showed above。隨時通過setting it as a custom buildpack嘗試一下:

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

你是一個嚮導嗎?完全是這樣做的。耶Heroku。我甚至學到了很多東西。順便說一下,如果有人在乎,那個讓我感到悲傷的包裹最終成爲「咕嚕表達」。 – bugeats 2013-03-22 22:15:50

+0

很高興爲你效勞。剛發送我的更改爲[拉請求](https://github.com/heroku/heroku-buildpack-nodejs/pull/34)。 – ryanbrainard 2013-03-23 00:10:25

+1

此修正已合併到官方的Heroku Node.js buildpack中:https://github.com/heroku/heroku-buildpack-nodejs/commit/06f629ce1d3517302f1d7d5bf89d214ef4b1600e – Zeke 2013-03-24 05:13:16

6

你通過使用自定義生成包的所有麻煩之前,請嘗試啓用在Heroku上更詳細的日誌輸出使用:

heroku config:set NPM_CONFIG_LOGLEVEL=verbose

有關更多信息,請參見https://devcenter.heroku.com/articles/troubleshooting-node-deploys

+0

希望這是一個可用於失敗部署的按鈕:/ – 2017-12-30 16:52:38