我正在开发在前端使用React的NodeJS应用。我的文件夹结构是:
root -
- client (React App)
- api (express server)
我的git文件夹位于根文件夹中,用于在整个开发过程中将整个项目推送到GitHub。但是我的仓库现在需要在api文件夹中初始化吗?还是有办法告诉Heroku该应用程序位于api文件夹中?
Heroku上的错误:
Build failed
There was an issue building your app. Please ensure your app is deployable to Heroku and try again.
! No default language could be detected for this app.
HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
See https://devcenter.heroku.com/articles/buildpacks
! Push failed
[另外,我觉得值得一提的是,我在Heroku GUI中设置了自动部署。因此,它正在尝试构建。我也有一个Proc文件和一个app.json文件。
app.json
{
"name": "Craig Bauer | Portfolio",
"description": "My web portfolio built as a MEAN stacjk app",
"repository": "https://github.com/craigbauerwebdev/Portfolio",
"logo": "",
"keywoeds": ["node", "react", "portfolio"],
"image": "heroku/nodejs"
},
{
"buildpacks": [
{
"url": "https://github.com/heroku/heroku-buildpack-node.js"
}
]
}
Procfile
web: node app.js
提前感谢
我找到了这个解决方案,只想分享。我的整个生产应用程序现在位于api文件夹中。此命令对我来说效果很好。
git subtree push --prefix api heroku master
对于将来的项目,我将采用不同的结构,因此在每次部署之前都不必复制构建。