[英]Error 500 when not including the node_modules folder
最后更新
似乎我的依赖项(不是1.0)在2个版本之间更改了其API。 我的本地版本已过时,当推送到Heroku时,Heroku下载了最新版本,并且API更改导致我的应用崩溃。
结论 :当使用库还不稳定(即没有达到1.0),坚持一个特定版本。
谢谢你们帮助我。
=================
使用Node 0.8.latest表示3.latest。
我的一条路线在本地运行完美,但是在部署该应用程序时出现500错误。 该错误消息是非常特定于应用程序的,但不符合逻辑。 这是一个TypeError,告诉我某些东西(应定义)未定义。 为了使它起作用,我发现的唯一奇怪的解决方案是从.gitignore中删除node_modules
并在git下跟踪它。 当在heroku上推送时,没有错误出现,并且该URL可以正常工作
它开始变得陌生,当你知道,我并没有改变node_modules文件夹内的任何代码。 我还通过将本地npm ls
与推送到heroku时生成的模块列表进行比较,比较了本地和“ heroku”安装的依赖项,因为它重建了依赖项,因为它们是.gitignore
。 我看到一些软件包的微小但无法解释的差异,在npm ls
认为是invalid
。 这个包都不在我的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。 其余部分完全相同。
还要注意的另一点是,错误stacktrace指向一个模块,该模块在两种环境下具有相同的版本,并且不依赖于也不依赖于具有不同版本的模块。 因此,即使是很小的依赖性差异也不应成为问题的原因。
不过,我看不出来自哪里的问题,我想避免跟踪我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"
}
}
以下是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"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.