【问题标题】:Trouble with first Node app deployment through Heroku通过 Heroku 部署第一个 Node 应用程序时出现问题
【发布时间】:2015-03-14 02:49:57
【问题描述】:

按照 12devs of Xmas 教程创建我的第一个 Node.js 应用程序 (http://12devsofxmas.co.uk/post/2012-12-28-day-3-realtime-collaborative-drawing-with-nodejs) 我现在正尝试按照 Rob Dodson 的教程通过 Heroku (http://robdodson.me/blog/2012/06/04/deploying-your-first-node-dot-js-and-socket-dot-io-app-to-heroku/) 部署它

但是,在提交到 github 后,当我尝试推送到 Heroku 时,我得到以下错误输出:

-----> Installing dependencies with npm
       npm WARN package.json Draw@0.0.1 No README.md file found!
       npm http GET https://registry.npmjs.org/express
       npm http 200 https://registry.npmjs.org/express
       npm http GET https://registry.npmjs.org/express/-/express-2.5.11.tgz
       npm http 200 https://registry.npmjs.org/express/-/express-2.5.11.tgz
       npm ERR! Refusing to delete: /tmp/build_1t6d7hbd2psal/node_modules/.bin/express not in /tmp/build_1t6d7hbd2psal/node_modules/express
       File exists: /tmp/build_1t6d7hbd2psal/node_modules/.bin/express
       Move it away, and try again.

       npm ERR! System Linux 2.6.32-350-ec2
       npm ERR! command "/tmp/node-node-Fenl/bin/node" "/tmp/node-npm-6pyT/cli.js" "install" "--production"
       npm ERR! cwd /tmp/build_1t6d7hbd2psal
       npm ERR! node -v v0.6.20
       npm ERR! npm -v 1.1.65
       npm ERR! path /tmp/build_1t6d7hbd2psal/node_modules/.bin/express
       npm ERR! code EEXIST
       npm ERR!
       npm ERR! Additional logging details can be found in:
       npm ERR!     /tmp/build_1t6d7hbd2psal/npm-debug.log
       npm ERR! not ok code undefined
       npm ERR! not ok code 1
!     Failed to install --production dependencies with npm

!     Heroku push rejected, failed to compile Node.js app

To git@heroku.com:secure-dawn-2437.git

! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:secure-dawn-2437.git'

我的 package.json 文件如下:

{
    "name": "Draw",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
      "express": "~2.x",
      "socket.io": "~0.9.x"
    },
    "engines": {
      "node": "0.6.x",
      "npm": "1.1.x"
    }
}

对不起 - 我对这种开发完全不熟悉,在学校期间主要使用 Java 工作,但我很想学习。我认为问题出在 express 上,但我不确定“将其移开,然后重试”是什么意思。

【问题讨论】:

    标签: node.js heroku express


    【解决方案1】:

    您尝试部署的应用程序中有Procfile 文件吗?

    如果没有,请查看 Heroku 网站上提供的文档:

    https://devcenter.heroku.com/articles/nodejs#declare-process-types-with-procfile

    编辑:

    我强烈建议您首先部署一个非常简单的 Node.js 应用程序(例如 Hello World),这样您就可以追溯错误的根源。

    【讨论】:

      【解决方案2】:

      尝试从 .gitignore 中删除 bin 和 .bin 或将 node_modules 添加到 .gitignore。更多信息在这里:Fail to deploy node.js application to heroku

      【讨论】:

        【解决方案3】:

        我可以通过暂时禁用 Heroku 对缓存的使用来解决这个问题:

        heroku config:set NODE_MODULES_CACHE=false

        推送构建,然后重新打开缓存。

        【讨论】:

          猜你喜欢
          • 2020-10-18
          • 2021-12-16
          • 1970-01-01
          • 2013-09-30
          • 2017-01-26
          • 2011-05-15
          • 2014-11-25
          • 2018-09-10
          • 2012-07-08
          相关资源
          最近更新 更多