2013-03-21 63 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