簡體   English   中英

Heroku 如何從 package.json 版本號崩潰?

[英]How can Heroku crash from a package.json version number?

我正在使用 GitHub 在 Heroku 上運行一個 Discord 機器人。 在某個時候,Heroku 在啟動我的應用程序時突然崩潰了。 構建進行得很順利,但在啟動時找不到我的任何依賴項(在第一個時崩潰,但后來發現它沒有所有依賴項)。 當使用 Heroku 的控制台安裝我的依賴項( heroku run npm install discord.js等)然后啟動應用程序工作時,很明顯 Heroku 沒有安裝依賴項。

在一次更改一個文件然后再次部署時,我終於找到了罪魁禍首:將 package.json 中的版本號更改為 3.7。 3.6.4 很好(以前的版本),3.7 崩潰了,恢復到 3.6.4(只是數字!)或跳到 3.7.1 修復它。 現在我想我的問題是,當應用程序需要其模塊時,package.json 中的不同版本號如何使應用程序崩潰?

只是為了顯示它實際上只是版本號,這是我的 package.json:

{
  "name": "myapp",
  "version": "3.7",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "author",
  "license": "ISC",
  "dependencies": {
    "discord.js": "^11.5.1",
    "find": "^0.3.0",
    "firebase-admin": "^8.9.2",
    "fs": "0.0.1-security",
    "python-shell": "^1.0.8"
  }
}

我只是無法繞過它。 是的,我知道這不是最干凈的 package.json 但它之前從版本 0 到 3.6.4 都可以使用,所以我認為它沒有腳本/引擎等不會是問題......也許這里的任何人都有想法是什么問題?

只是偶然發現了自己的答案。 版本號使用semver 語法,需要三個部分,用點分隔。 在本地運行 Node 似乎並不真正關心這種語法,但顯然 Heroku 關心。 當語法不正確時,Heroku 可能不會使用 package.json 文件,因此在構建期間不會安裝依賴項。 我想我很幸運,以前從未部署過版本號只有兩個部分的版本。 謝謝,很抱歉問了一個問題,如果我再考慮一下,我就會找到答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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