[英]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.