Heroku:在部署期间排除npm错误 - 读取/ tmp文件

时间:2013-03-21 23:25:48

标签: node.js heroku npm

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上失败?

2 个答案:

答案 0 :(得分:14)

在您完成使用自定义构建包的所有麻烦之前,请尝试使用以下命令在heroku上启用更详细的日志记录输出:

heroku config:set NPM_CONFIG_LOGLEVEL=verbose

有关详细信息,请参阅https://devcenter.heroku.com/articles/troubleshooting-node-deploys

答案 1 :(得分:7)

当您将代码推送到Heroku时,您的构建将在临时构建dyno上运行,因此一旦构建完成,所有文件都将消失,因为dynos具有ephemeral file systemsheroku run cat /tmp/build_24pmtv04ok0ss/npm-debug.log没有帮助的原因是您使用现有应用的新文件系统附加到one-off dyno(与构建dyno完全分开)。

所有希望都不会丢失。您应该能够在退出时tweaking the buildpack cat npm-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 看到正在发生的事情:

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

我没有彻底测试过,但我快速fork default Node buildpackdo what I just showed above。请随意通过setting it as a custom buildpack尝试:

{{1}}