簡體   English   中英

Heroku 部署錯誤:找不到模塊“/app/index.js”

[英]Heroku Deploy Error: Cannot find module '/app/index.js'

我正在嘗試在 Heroku 上部署 mt 應用程序,但我總是遇到同樣的錯誤:

2016-08-18T10:16:10.988982+00:00 heroku[web.1]: Starting process with command `node index.js`
2016-08-18T10:16:13.180369+00:00 app[web.1]: module.js:341
2016-08-18T10:16:13.180389+00:00 app[web.1]:     throw err;
2016-08-18T10:16:13.180390+00:00 app[web.1]:     ^
2016-08-18T10:16:13.180391+00:00 app[web.1]: 
2016-08-18T10:16:13.180392+00:00 app[web.1]: Error: Cannot find module '/app/index.js'
2016-08-18T10:16:13.180393+00:00 app[web.1]:     at Function.Module._resolveFilename (module.js:339:15)
2016-08-18T10:16:13.180394+00:00 app[web.1]:     at Function.Module._load (module.js:290:25)
2016-08-18T10:16:13.180394+00:00 app[web.1]:     at Function.Module.runMain (module.js:447:10)
2016-08-18T10:16:13.180399+00:00 app[web.1]:     at node.js:405:3
2016-08-18T10:16:13.271966+00:00 heroku[web.1]: Process exited with status 1
2016-08-18T10:16:13.273383+00:00 heroku[web.1]: State changed from starting to crashed

正如我在類似請求中所讀到的,我已經添加了一個包含以下代碼的 Procfile: web: node index.js ,但我仍然有同樣的問題。

有人知道問題出在哪里嗎? 任何指導將不勝感激。 先感謝您!

  1. 您的index.js文件是否在您的根目錄中?
    web: node ./index.js
  1. 您的文件可能像這樣嵌套app/src/index.js
    web: node ./src/index.js
  1. 您的index.js是否有大寫的“I”? 它必須是index.js而不是Index.js

如果你的項目根目錄下確實index.js文件,但heroku 的錯誤提示找不到模塊。 然后,您遇到的問題可能是由於GIT

我們怎樣才能確保是這種情況? 好吧,您的 git 存儲庫可能不會將您的index.js文件添加到提交中,也不會將其推送到 heroku。 您可以通過以下命令查看git在本地存儲庫中監視的文件來驗證這一點:

git ls-files

應該列出您的index.js文件。 如果不是,那么您的文件將被忽略。

解決方案:強制添加您的文件。

git add --force ./index.js

現在你可以提交並推送到heroku,你應該已經啟動並運行了。

當您的索引文件位於dist目錄或src (app/dist/index.js 或 app/src/index.js)中時,也可能出現這種情況。

為 index.js 文件添加相對路徑,如下所示

web: node ./index.js

我的問題是我的本地開發環境有問題。 不知何故...JavaScript 代碼被注入到我的應用程序項目中,而我沒有這樣做。

Heroku 不知道這種情況正在發生,在我推送期間開始看到錯誤,例如“找不到 jQuery,即使您在應用程序中使用它”。 我當時想“什么????,我什至沒有使用 jQuery。” 然后我在我的項目中重新打開了一個 .js 文件……它就是一個聲明 jquery 的 const 變量。 所以我說了這么多,檢查你的 VSCode 擴展,你的第三方 npm 包,以及所有相關的事情,以確保這樣的事情不會發生在你身上。

如果錯誤仍然發生,請嘗試使用:

web: node .

使用另一個實例轉到任何子目錄的根目錄中的package.json文件。

將腳本標簽從"start": "node start"更改為"start": "node app.js"

請注意:在我的情況下,我的主文件是app.js ,你的可以是index.jsserver.js或任何你命名的文件。

我也收到此錯誤。 然后我通過修復導入文件來解決它。 我的文件夾像產品一樣是小寫的,我像 Product 一樣導入它。 它不會在本地主機中給我錯誤。 請檢查導入文件路徑是否在索引文件中正確。

如果您在文件夾名稱中留出空間或在多個文件夾中創建文件,那么它也可能發生它們並正確指定路徑然后它將正常工作。

暫無
暫無

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

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