2013-01-14 150 views
0

當我嘗試在Heroku上部署應用程序時,出現此錯誤消息。有什麼建議麼?我可以在本地主機上輕鬆部署我的應用程序,但在Heroku上無法使用。Heroku上的Node.Js和Socket.IO應用程序

我的package.json是:

{ 
    "name":"tryout", 
    "version":"0.0.1", 
    "private":true, 
    "scripts":{ 
     "start":"node app" 
    }, 
    "dependencies":{ 
     "express":"3.0.0rc3", 
     "jade":"*", 
     "passport":">= 0.1.11", 
     "passport-local":">= 0.1.3", 
     "underscore":">= 1.3.3", 
     "socket.io":">= 0.9.6", 
     "node-uuid":">= 1.3.3", 
     "mongoose":">= 3.0.2", 
     "bcrypt":">= 0.7.1" 
    }, 
    "engines": { 
     "node": "0.8.x", 
     "npm": "1.1.x" 
    } 
} 

PS:我不使用hiredis可言。

輸入命令:git push heroku master

Counting objects: 1731, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (1541/1541), done. 
Writing objects: 100% (1731/1731), 7.42 MiB | 400 KiB/s, done. 
Total 1731 (delta 192), reused 0 (delta 0) 
-----> Removing .DS_Store files 
-----> Node.js app detected 
-----> Resolving engine versions 
     Using Node.js version: 0.8.14 
     Using npm version: 1.1.65 
-----> Fetching Node.js binaries 
-----> Vendoring node into slug 
-----> Installing dependencies with npm 
     npm WARN package.json [email protected] No README.md file found! 
     npm WARN package.json [email protected] No README.md file found! 

     > [email protected] preinstall /tmp/build_37k5gxae7u8vc/node_modules/hiredis 
     > make || gmake 

     cd deps/hiredis && make static 
     make[1]: Entering directory `/tmp/build_37k5gxae7u8vc/node_modules/hiredis/deps/hiredis' 
     make[1]: Nothing to be done for `static'. 
     make[1]: Leaving directory `/tmp/build_37k5gxae7u8vc/node_modules/hiredis/deps/hiredis' 
     node-waf configure build 
     Setting srcdir to      : /tmp/build_37k5gxae7u8vc/node_modules/hiredis 
     Setting blddir to      : /tmp/build_37k5gxae7u8vc/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-jj2B 
     'configure' finished successfully (0.056s) 
     Waf: Entering directory `/Users/USERNAME/Developer/Sites/bla/node_modules/hiredis/build' 
     Waf: Leaving directory `/Users/USERNAME/Developer/Sites/bla/node_modules/hiredis/build' 
     Traceback (most recent call last): 
     File "/tmp/node-node-jj2B/bin/node-waf", line 16, in <module> 
      Scripting.prepare(t, os.getcwd(), VERSION, wafdir) 
     File "/tmp/node-node-jj2B/bin/../lib/node/wafadmin/Scripting.py", line 145, in prepare 
      prepare_impl(t, cwd, ver, wafdir) 
     File "/tmp/node-node-jj2B/bin/../lib/node/wafadmin/Scripting.py", line 135, in prepare_impl 
      main() 
     File "/tmp/node-node-jj2B/bin/../lib/node/wafadmin/Scripting.py", line 188, in main 
      fun(ctx) 
     File "/tmp/node-node-jj2B/bin/../lib/node/wafadmin/Scripting.py", line 386, in build 
      return build_impl(bld) 
     File "/tmp/node-node-jj2B/bin/../lib/node/wafadmin/Scripting.py", line 405, in build_impl 
      bld.compile() 
     File "/tmp/node-node-jj2B/bin/../lib/node/wafadmin/Build.py", line 268, in compile 
      os.chdir(self.bldnode.abspath()) 
     OSError: [Errno 2] No such file or directory: '/Users/USERNAME/Developer/Sites/bla/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! System Linux 2.6.32-347-ec2 
     npm ERR! command "/tmp/node-node-jj2B/bin/node" "/tmp/node-npm-nN2P/cli.js" "install" "--production" 
     npm ERR! cwd /tmp/build_37k5gxae7u8vc 
     npm ERR! node -v v0.8.14 
     npm ERR! npm -v 1.1.65 
     npm ERR! code ELIFECYCLE 
     npm ERR! 
     npm ERR! Additional logging details can be found in: 
     npm ERR!  /tmp/build_37k5gxae7u8vc/npm-debug.log 
     npm ERR! not ok code 0 
!  Failed to install --production dependencies with npm 
!  Heroku push rejected, failed to compile Node.js app 

To [email protected]:arcane-sea-8207.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:arcane-sea-8207.git' 
+0

當你在本地運行'npm install'和'npm shrinkwrap'時會發生什麼?在發佈到Heroku之前,您應該在本地測試您的應用安裝。 –

+0

本地的程序工作正常,但我已經解決了使用.gitignore文件的這個問題,但有一個新的錯誤,我正在處理。我希望你會找到一個解決方案:) http://stackoverflow.com/questions/14328286/heroku-node-js-errors – Yagiz

回答

1

看來hiredis間接地express,你有一個發佈候選版,這可能是問題的需要。嘗試改變express到:

"express":"3.x" 

此外,還要確保你不承擔任何責任node_modules目錄到你的git回購。將它添加到.gitignore

+0

仍然是相同的錯誤 – Yagiz

+0

你添加node_modules到你的git回購?你不應該。 – asgoth

+0

是的,你是對的,謝謝! – Yagiz

相關問題