MERN 部署到 Heroku

问题描述

我很难弄清楚如何将我的应用程序部署到 heroku。我是这一切的新手,所以我尝试了不同的方法并遵循不同的教程,但我似乎无法找到如何去做。

这是我的 github 仓库: https://github.com/solecity/card-deck-manager-app/tree/main

在我的 heroku 日志中,我收到了不同的错误

2021-07-14T12:22:33.592361+00:00 app[web.1]: npm ERR! missing script: start

Starting process with command `node index.js`
2021-07-14T12:25:08.838023+00:00 app[web.1]: internal/modules/cjs/loader.js:905
2021-07-14T12:25:08.838048+00:00 app[web.1]: throw err;
2021-07-14T12:25:08.838048+00:00 app[web.1]: ^
2021-07-14T12:25:08.838049+00:00 app[web.1]:
2021-07-14T12:25:08.838049+00:00 app[web.1]: Error: Cannot find module '/app/index.js'

2021-07-14T12:27:16.812794+00:00 app[web.1]: Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'express' imported from /app/server/index.js

如果有人能说明我如何解决这个问题,我将不胜感激

解决方法

如错误所述,您需要在 package.json 中提供一个启动脚本 显然这就是heroku试图运行的。 (错误 1) 如果它没有找到它,它会运行类似 node index.js 的东西(错误 2)

此外,您还没有在主 package.json 的依赖项中注册 express,因此 heroku 不会安装它。 (错误3)

我不太习惯heroku,但我认为你应该创建2个单独的项目,并在heroku中分别注册它们。这样他只会找到合适的 package.json 并运行。