Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 不包括节点\u模块文件夹时出现错误500_Git_Node.js_Heroku - Fatal编程技术网

Git 不包括节点\u模块文件夹时出现错误500

Git 不包括节点\u模块文件夹时出现错误500,git,node.js,heroku,Git,Node.js,Heroku,上次更新 似乎我的一个依赖项,而不是1.0,在两个版本之间更改了它的API。我的本地版本已经过时,当推到Heroku时,Heroku下载了最新版本,API更改使我的应用程序崩溃 结论:当使用尚未稳定的库(未达到1.0)时,请坚持使用特定版本 谢谢你们试图帮助我 ================= 使用节点0.8.latest,express 3.latest 我的一条路线在本地运行得很好,但在部署应用程序时给了我500个错误。错误消息非常特定于应用程序,但不合逻辑。这是一个类型错误,告诉我有些东

上次更新

似乎我的一个依赖项,而不是1.0,在两个版本之间更改了它的API。我的本地版本已经过时,当推到Heroku时,Heroku下载了最新版本,API更改使我的应用程序崩溃

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

谢谢你们试图帮助我

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

使用节点0.8.latest,express 3.latest

我的一条路线在本地运行得很好,但在部署应用程序时给了我500个错误。错误消息非常特定于应用程序,但不合逻辑。这是一个类型错误,告诉我有些东西(应该定义)是未定义的。为了让它工作,我找到的唯一奇怪的解决方案是从.git中删除
node\u模块
,然后在git下对其进行忽略和跟踪。在heroku上推送时,不会出现错误,url也会正常工作

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

需要注意的另一点是,stacktrace错误指向一个模块,该模块在两个环境中具有相同的版本,并且不依赖于也不依赖于具有不同版本的模块。因此,即使是微小的依赖性差异也不应该是问题的原因

但是,我看不出问题来自何处,我希望避免跟踪我的
节点\u模块
文件。还是我应该

更新

根据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"
  }
}

下面是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"
    }
}

你的package.json看起来怎么样?我怀疑它说的是“connect”:“>=2.x”,这可以解释为什么Heroku的版本比您的本地环境更新。如果是这样,请尝试锁定到包中的特定版本(例如“=2.4.4”)。json一点也不。正如我所说,在2个环境中具有不同版本的包没有列在my package.json文件中,它们是my package.json中模块的依赖项,因此我无法控制下载的版本。不过,我要用package.json文件更新我的问题。好吧,使用“*”作为版本说明符根本不是一个好做法,因为你可以下载一个更改了API并破坏了你的应用程序的版本。看见