我试图在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
,但我仍然有同样的问题。
有人知道问题出在哪里吗?任何指导都将不胜感激。提前感谢!
6条答案
按热度按时间vatpfxk51#
1.您的
index.js
文件是否在根目录中?1.您的文件可能嵌套为
app/src/index.js
1.您的
index.js
是否有大写的“I”?它必须是**index.js
而不是Index.js
如果您确实在项目的根目录下有index.js文件,但是heroku的错误提示找不到该模块,那么您遇到的问题可能是由于GIT**造成的。
我们如何确定这是真的?好吧,你的git存储库可能没有将你的index.js文件添加到提交中,也没有将它推送到heroku中。你可以通过查看 git 在本地存储库中监视的文件来验证这一点,方法是使用以下命令:
您的index.js文件应该会被列出。如果没有,那么您的文件将被忽略。
解决方案:强制添加文件。
现在您可以提交并推送到heroku,您应该可以开始运行了。
当您的索引文件位于dist目录或src(app/dist/index.js或app/src/index.js)中时,也可能出现这种情况。
axkjgtzd2#
添加index.js文件的相对路径如下
nwwlzxa73#
我也得到这个错误.然后我解决它通过修复导入文件.我的文件夹是在小写像产品,我导入它像产品.它没有给予我在localhost错误.请检查导入文件路径是否在索引文件中正确.
xzlaal3s4#
我的问题是我的本地开发环境有问题。不知怎么的...JavaScript代码被注入到我的应用程序项目中,而我没有这样做。
Heroku并不知道发生了这种情况,在我的推送过程中,他开始看到错误,比如“找不到jQuery,尽管你在应用中使用了它”。我说“什么????,我甚至没有使用jQuery。”然后我在我的项目中重新打开了一个.js文件......它就在那里,一个声明jQuery的常量变量。所以我说了这么多,检查你的VSCode扩展,你的第三方npm包,和一切确保这样的事情不会发生在你身上。
cigdeys35#
如果错误仍然发生,请尝试使用以下命令:
q1qsirdb6#
转到您的
package.json
文件,该文件位于具有另一个示例的任何子目录的根目录中。将脚本标记从
"start": "node start"
更改为"start": "node app.js"
。**请注意:**在我的情况下,我的主文件是
app.js
,你的可以是index.js
或server.js
或任何你命名的文件。