git - 将 nodejs 部署到 heroku

标签 git node.js deployment heroku

我已经按照入门指南将 nodejs 应用程序部署到 heroku:https://devcenter.heroku.com/articles/nodejs

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


       > ws@0.4.21 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).

       > hiredis@0.1.14 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! hiredis@0.1.14 preinstall: `make || gmake`
       npm ERR! `sh "-c" "make || gmake"` failed with 127
       npm ERR! 
       npm ERR! Failed at the hiredis@0.1.14 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 git@heroku.com:morning-plateau-9747.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:morning-plateau-9747.git'

我不知道如何解决这个问题。该应用程序仍然是准系统。我决定在 heroku 上启动并运行它,然后逐步添加我想要的功能。它在本地主机上运行良好,npm 安装所有依赖项没有错误,并且使用 Procfile 它甚至可以与工头一起使用。我已经使用 github 创建了 repo 并将其克隆到我的机器上。部署到我的 github 帐户没有问题。这是 repo 的链接 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"
  }
}

最佳答案

socket.io 基本上使用了 context 中的 hiredis 模块。

如果您引用 eis 的回答中提到的线程,您会发现你们都在使用 socket.io 0.9.8。

尝试使用 0.9.6(我在 heroku 上使用它,从未遇到过此类问题)。

关于git - 将 nodejs 部署到 heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11951616/

相关文章:

git - 你能用 Git 一条命令删除多个分支吗?

node.js - 在 Node API 中一定时间后刷新 Oauth token

maven - 我可以为 Maven 中的任何项目设置默认部署吗?

ruby-on-rails -/config/database.yml in .gitignore on deploy/config/database.yml not found 应该使用/shared/database.yml 代替,如何?

bash - git auto-complete 不提示分支名称

git clean 不清理不需要的文件夹

git - 如何将代码从 Cloudways 推送到 Github

node.js - Nodejs找不到模块

javascript - 请求太重时出现 NodeJS CORS 错误(文件上传)

ruby-on-rails-4 - 有没有办法阻止 Rails 在生产中预编译 Assets ?