【问题标题】:Error 500 when not including the node_modules folder不包括 node_modules 文件夹时出现错误 500
【发布时间】:2012-10-16 18:22:40
【问题描述】:

最后更新

似乎我的一个依赖项,还不是 1.0,在 2 个版本之间更改了它的 API。我的本地版本已经过时,在推送到 Heroku 时,Heroku 下载了最新版本,其中的 API 更改导致我的应用程序崩溃。

结论:当使用尚未稳定(未达到 1.0)的库时,请坚持使用特定版本。

感谢你们帮助我。

==================

使用 Node 0.8.latest,表达 3.latest。

我的一条路线在本地完美运行,但在部署应用程序时出现 500 错误。错误消息非常特定于应用程序,但不合逻辑。这是一个 TypeError,告诉我某些东西(应该定义的)是未定义的。为了使它工作,我发现的唯一奇怪的解决方案是从 .gitignore 中删除 node_modules 并在 git 下跟踪它。在heroku上推送时,不会出现错误,并且网址正常

当您知道我没有更改 node_modules 文件夹中的任何代码时,它开始变得奇怪。我还通过将本地npm ls 与推送到heroku 时生成的模块列表进行比较,比较了本地和“heroku”安装的依赖项,因为它重建了依赖项,因为它们是.gitignore'd。我看到invalidnpm ls 的一些软件包存在细微但无法解释的差异。这个包都不在我的package.json 文件中,它们是我在package.json 中的包的依赖项。即,connect 在本地是 2.4.4,在 heroku 上是 2.5.0,send 在本地是 0.0.4,在 heroku 上是 0.1.0,emitter-compnonent 在本地是 0.0.1,在 heroku 上是 0.0.5。其余部分完全相同。

要注意的另一件事是错误堆栈跟踪指向一个模块,该模块在两个环境中具有相同的版本,并且不依赖或不依赖于具有不同版本的模块。所以即使是微小的依赖差异也不应该是问题的原因。

但是,我看不出问题出在哪里,我想避免跟踪我的node_modules 文件。还是应该?

更新

根据 Hector Correa 的要求,这是我的 package.json 文件

{
  "name": "myapp",
  "version": "0.1.0",
  "dependencies": {
    "express": "3.0.x",
    "mongoose": "3.0.x",
    "superagent": "0.9.x",
    "oauth": "0.9.x",
    "querystring": "0.1.x",
    "consolidate": "~0.4.0",
    "mustache": "~0.6.0",
    "singly": "*",
    "underscore": "~1.4.1"
  },
  "devDependencies": {
    "mocha": "1.4.x",
    "supertest": "0.1.x"
  },
  "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}

【问题讨论】:

  • 你的 package.json 看起来怎么样?我怀疑它说 "connect": ">= 2.x" 这可以解释为什么 Heroku 的版本比您的本地环境更新。如果是这样,请尝试在 package.json 中锁定特定版本(例如“= 2.4.4”)
  • 一点也不。正如我所说,在我的 package.json 文件中没有列出在 2 个环境中具有不同版本的包,它们是我 package.json 中模块的依赖项,所以我无法控制下载的版本。不过,我将使用我的 package.json 文件更新我的问题。

标签: git node.js heroku


【解决方案1】:

下面是 Heroku

中的工作示例 package.json
{
    "name": "MyApp"
    , "version": "0.0.1"
    , "dependencies": {
          "express": "3.x.x"
    }
    , "devDependencies": {
        "mocha": "*"
        , "should": "*"
        , "supervisor": "*"
        , "superagent": "*"
        , "request": "*"
    }
    , "engines": {
        "node": "0.8.x"
        , "npm": "1.1.x"
    }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多