javascript – Heroku:“没有为此应用检测到默认语言”节点应用程序抛出的错误

前端之家收集整理的这篇文章主要介绍了javascript – Heroku:“没有为此应用检测到默认语言”节点应用程序抛出的错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在学习NodeJS,我正在学习的课程有几个项目,按部分排列.我有一个主文件夹下的所有项目,也是一个git repository.

文件夹中的每个子文件夹都是一个节点项目,在node_modules中包含package.json和相关的依赖项.问题是当我试图将节点应用程序推送到一个这样的文件夹(todo-api)到heroku时,我收到以下错误

remote: Compressing source files... done.
remote: Building source:
remote: 
remote:  !     No default language could be detected for this app.
remote:                         HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote:                         See https://devcenter.heroku.com/articles/buildpacks
remote: 
remote:  !     Push Failed
remote: Verifying deploy...
remote: 
remote: !       Push rejected to agile-forest-32749.
remote: 
To https://git.heroku.com/agile-forest-32749.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: Failed to push some refs to 'https://git.heroku.com/agile-forest-32749.git'

这是项目的目录结构 –

enter image description here

我决定将todo-api子文件夹重构为一个新的项目,这次推向Heroku工作得很好 –

enter image description here

我不明白为什么我会得到“无默认语言”错误,特别是当两个地方的节点应用程序完全相同时.有什么想法吗?

最佳答案
Heroku有一组默认的构建包,在需要检测应用程序语言时使用.
为了进行该检测,它运行每个默认构建包的bin / detect命令,直到其中一个返回0退出代码.

This is the command for the node buildpack.
如您所见,它需要将package.json放在应用程序的根目录中,而不是位于子文件夹中.

这是导致构建失败的差异.您需要将您的应用程序放在git存储库的根目录下.

猜你在找的JavaScript相关文章