我如何告诉 heroku 我的 server.js 和 package.json 在一个文件夹中?

Posted

技术标签:

【中文标题】我如何告诉 heroku 我的 server.js 和 package.json 在一个文件夹中?【英文标题】:How do I tell heroku that my server.js and package.json are inside a folder? 【发布时间】:2020-08-29 14:33:29 【问题描述】:

目前我的文件结构是这样的

如您所见,我的服务器和包文件位于后端文件夹中。 project-replays 文件夹是前端文件夹。

正如预期的那样,当我在根文件夹上执行heroku local 时,它告诉我它找不到应该放在根文件夹中的 package.json。有没有办法告诉 heroku 在后端文件夹中查找 package.json?

【问题讨论】:

可能,例如:github.com/accimeesterlin/mern-stack-deploy-heroku 【参考方案1】:

您需要将package.json 添加到root,即使它只是用于运行脚本。检测package.json 也是 Node buildpack 检测 Node 应用程序的方式,因此在 Heroku 上运行 Node 是最低要求。

您需要添加如下内容:

"scripts": 
  "start": "node backend/server.js"

heroku local 默认使用根目录下的npm start 脚本。

【讨论】:

当我在本地工作时,我从我的project-replays 文件夹运行npm start。有没有办法也改变它?如果它试图从根文件夹运行npm start,它会失败吗? > 有没有办法也改变它?我会在根目录下设置两个启动脚本。你可以有一个类似于cd project-replays && npm start"start-frontend" 脚本。 > 如果它试图从根文件夹运行 npm start 它会失败吗?你需要一个package.json 在根目录。由于您使用了一些带有 2 个子目录的脚本,因此我建议您也使用 Procfile:devcenter.heroku.com/articles/procfile 但它再次请求依赖项,需要复制后端package.json中的依赖项并粘贴到根package.json中

以上是关于我如何告诉 heroku 我的 server.js 和 package.json 在一个文件夹中?的主要内容,如果未能解决你的问题,请参考以下文章

试图在 heroku 上托管我的不和谐机器人但我无法获得工人。请告诉我如何解决这个问题以及在哪里

Heroku 错误模块未找到 'json-server'

节点server.js将无法正常工作

部署到 Heroku 错误:找不到模块“/app/server.js”

Heroku 没有连接到 Mongo Atlas DB?

Heroku 没有连接到 Mongo Atlas DB?