【发布时间】:2012-08-23 20:24:51
【问题描述】:
在雪松堆栈上的 heroku 上部署我的应用程序似乎有一个奇怪的问题,我的节点进程甚至没有被调用
我的Procfile如下:
web: node web.js
还有我的 package.json 文件:
{
"name": "fuuzik",
"version": "0.0.1",
"dependencies": {
"express": "3.x",
"jade":"*",
"mime-magic":"*"
},
"engines": {
"node": "0.8.x",
"npm": "1.1.x"
}
}
因此,在我提交并推送 heroku 后,它检测到它是一个节点应用程序并正确构建了我的依赖项,甚至说它已部署......但应用程序在部署时立即崩溃,heroku 日志返回:
2012-08-29T08:52:14+00:00 heroku[api]: Deploy d9fdb17 by he610@doc.ic.ac.uk
2012-08-29T08:52:14+00:00 heroku[web.1]: State changed from crashed to starting
2012-08-29T08:52:14+00:00 heroku[slugc]: Slug compilation finished
2012-08-29T08:52:16+00:00 heroku[web.1]: Starting process with command `node web.js`
2012-08-29T08:52:16+00:00 app[web.1]: bash: node: command not found
2012-08-29T08:52:17+00:00 heroku[web.1]: Process exited with status 127
2012-08-29T08:52:17+00:00 heroku[web.1]: State changed from starting to crashed
foreman 运行良好,根目录周围有几个 .php 文件(因为我正在移植一些旧代码),但我很确定 Procfiles 的逻辑应该允许这样做
根据要求,这里是 npm install local 的输出:
--[/DEBUG]--
jade@0.27.2 node_modules/jade
├── commander@0.6.1
└── mkdirp@0.3.0
express@3.0.0rc3 node_modules/express
├── methods@0.0.1
├── range-parser@0.0.4
├── fresh@0.1.0
├── cookie@0.0.4
├── crc@0.2.0
├── commander@0.6.1
├── debug@0.7.0
├── mkdirp@0.3.3
├── send@0.0.3 (mime@1.2.6)
└── connect@2.4.3 (pause@0.0.1, bytes@0.1.0, qs@0.4.2, formidable@1.0.11)
mime-magic@0.3.0 node_modules/mime-magic
这是我推送时的 git 日志(它有点大,所以我链接了它):
任何帮助表示赞赏!
【问题讨论】:
-
如果你为 node / npm 指定一个完整的版本(不带 .x)会有区别吗?
-
刚刚尝试使用节点 0.8.7 和 npm 1.1.4 .. 我还尝试删除我的本地 node_modules 文件夹(尽管这不应该相关或任何东西)没有运气.. :(
-
在本地运行
npm install会发生什么?此外,请提供将其推送到 Heroku 时的早期输出。 -
我编辑了问题以包含该问题
-
好吧,你的 pastebin 清楚地显示了一堆错误。我很惊讶你惊讶地发现它不起作用 :-) 特别是,你使用的 mime-magic 库似乎是 Heroku 上不可用的一些本机代码的包装器。
标签: node.js heroku web-deployment