簡體   English   中英

不包含node_modules文件夾時出現錯誤500

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM