我如何告诉 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 上托管我的不和谐机器人但我无法获得工人。请告诉我如何解决这个问题以及在哪里