13

いくつかの新しい依存関係または他の気の毒なことが、get push heroku masterデプロイ中にnpmにエラーを引き起こしています。

-----> 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で失敗するのはなぜですか?
4

2 に答える 2

26

カスタムビルドパックを使用する際のすべての問題を解決する前に、次のコマンドを使用して、herokuでより詳細なログ出力を有効にしてみてください。

heroku config:set NPM_CONFIG_LOGLEVEL=verbose

詳細については、 https://devcenter.heroku.com/articles/troubleshooting-node-deploysを参照してください。

于 2015-07-14T15:52:26.517 に答える
9

コードをHerokuにプッシュすると、ビルドは一時的なビルドdynoで実行されます。したがって、ビルドが完了すると、dynoには一時的なファイルシステムがあるため、すべてのファイルが失われます。heroku run cat /tmp/build_24pmtv04ok0ss/npm-debug.log役に立たなかった理由は、既存のアプリの新しいファイルシステム(ビルドdynoとは完全に分離されている)を使用して1回限りのdynoに接続したためです。

すべての希望が失われることはありません。ビルドパックを次のように終了時に調整することで、何が起こっているかを確認できるはずです。catnpm-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

徹底的にテストしていませんが、デフォルトのNodeビルドパックをすばやくフォークして、上記で示したとおりに実行しました。カスタムビルドパックとして設定して、お気軽に試してみてください。

heroku config:add BUILDPACK_URL="https://github.com/ryanbrainard/heroku-buildpack-nodejs.git"
于 2013-03-22T05:40:12.660 に答える