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