我跟着入門指南的應用程序的NodeJS部署到Heroku的:https://devcenter.heroku.com/articles/nodejs部署到的NodeJS的Heroku
它工作得很好,直到git push heroku master
。這終止於以下輸出:
git push heroku master
Counting objects: 1018, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (894/894), done.
Writing objects: 100% (1018/1018), 4.03 MiB | 64 KiB/s, done.
Total 1018 (delta 75), reused 0 (delta 0)
-----> Heroku receiving push
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.6.20
Using npm version: 1.0.106
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
> [email protected] install /tmp/build_ngyi26sy7e54/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> node install.js
[ws v0.4.21] Attempting to compile blazing fast native extensions.
[ws v0.4.21] Native code compile failed (but the module will still work):
[ws v0.4.21] The native extensions are faster, but not required.
[ws v0.4.21] On Windows, native extensions require Visual Studio and Python.
[ws v0.4.21] On Unix, native extensions require Python, make and a C++ compiler.
[ws v0.4.21] Start npm with --ws:verbose to show compilation output (if any).
> [email protected] preinstall /tmp/build_ngyi26sy7e54/node_modules/socket.io/node_modules/redis/node_modules/hiredis
> make || gmake
cd deps/hiredis && make static
make[1]: Entering directory `/tmp/build_ngyi26sy7e54/node_modules/socket.io/node_modules/redis/node_modules/hiredis/deps/hiredis'
make[1]: Nothing to be done for `static'.
make[1]: Leaving directory `/tmp/build_ngyi26sy7e54/node_modules/socket.io/node_modules/redis/node_modules/hiredis/deps/hiredis'
node-waf configure build
Setting srcdir to : /tmp/build_ngyi26sy7e54/node_modules/socket.io/node_modules/redis/node_modules/hiredis
Setting blddir to : /tmp/build_ngyi26sy7e54/node_modules/socket.io/node_modules/redis/node_modules/hiredis/build
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for node path : not found
Checking for node prefix : ok /tmp/node-node-Wyfk
'configure' finished successfully (0.029s)
Waf: Entering directory `/home/lhk/Desktop/zwillenhomepage/node_modules/socket.io/node_modules/redis/node_modules/hiredis/build'
Waf: Leaving directory `/home/lhk/Desktop/zwillenhomepage/node_modules/socket.io/node_modules/redis/node_modules/hiredis/build'
Traceback (most recent call last):
File "/tmp/node-node-Wyfk/bin/node-waf", line 16, in <module>
Scripting.prepare(t, os.getcwd(), VERSION, wafdir)
File "/tmp/node-node-Wyfk/bin/../lib/node/wafadmin/Scripting.py", line 145, in prepare
prepare_impl(t, cwd, ver, wafdir)
File "/tmp/node-node-Wyfk/bin/../lib/node/wafadmin/Scripting.py", line 135, in prepare_impl
main()
File "/tmp/node-node-Wyfk/bin/../lib/node/wafadmin/Scripting.py", line 188, in main
fun(ctx)
File "/tmp/node-node-Wyfk/bin/../lib/node/wafadmin/Scripting.py", line 386, in build
return build_impl(bld)
File "/tmp/node-node-Wyfk/bin/../lib/node/wafadmin/Scripting.py", line 405, in build_impl
bld.compile()
File "/tmp/node-node-Wyfk/bin/../lib/node/wafadmin/Build.py", line 268, in compile
os.chdir(self.bldnode.abspath())
OSError: [Errno 2] No such file or directory: '/home/lhk/Desktop/zwillenhomepage/node_modules/socket.io/node_modules/redis/node_modules/hiredis/build'
make: *** [all] Error 1
sh: gmake: not found
npm ERR! [email protected] preinstall: `make || gmake`
npm ERR! `sh "-c" "make || gmake"` failed with 127
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the hiredis package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! make || gmake
npm ERR! You can get their info via:
npm ERR! npm owner ls hiredis
npm ERR! There is likely additional logging output above.
npm ERR!
npm ERR! System Linux 2.6.32-343-ec2
npm ERR! command "/tmp/node-node-Wyfk/bin/node" "/tmp/node-npm-Rq2Y/cli.js" "rebuild"
npm ERR! cwd /tmp/build_ngyi26sy7e54
npm ERR! node -v v0.6.20
npm ERR! npm -v 1.0.106
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /tmp/build_ngyi26sy7e54/npm-debug.log
npm not ok
! Failed to rebuild dependencies with npm
! Heroku push rejected, failed to compile Node.js app
To [email protected]:morning-plateau-9747.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:morning-plateau-9747.git'
我不知道如何解決這個問題。該應用程序仍然是一個準系統。我決定在heroku上運行並運行,然後逐步添加我想要的功能。它在localhost上運行得很好,npm安裝所有的依賴關係,沒有錯誤,並且Procfile甚至可以與工頭一起工作。我使用github創建了回購並將其克隆在我的機器上。部署到我的github帳戶可以毫無問題地工作。以下是回購鏈接https://github.com/lhk/zwillenhomepage
我該怎麼辦?
相關的package.json:
{
"name": "zwillen-webseite",
"scripts": {
"start": "server.js"
},
"version": "0.0.1",
"engines": {
"node": "0.6.x"
},
"dependencies": {
"express": "3.0.x",
"socket.io": "0.9.8",
"jade": "0.27.0"
}
}
解決此問題的完整答案。謝謝 – lhk 2012-08-14 12:35:05
很奇怪。我有與socket.io 0.9.10相同的錯誤,降級到0.9.6修復它。謝謝!根據這個https://github.com/LearnBoost/socket.io/issues/1030,他們已經在最近一次提交中刪除了redis,所以錯誤很快就會消失。 – codemonkey 2012-10-04 10:34:12
謝謝你,本來沒有機會 – 2012-10-09 15:25:34