Man*_*iri 7 javascript git heroku node.js
我正在学习NodeJS,我正在学习的课程有几个项目,按部分排列.我将所有项目都放在一个主文件夹下,这也是一个git存储库.
主文件夹中的每个子文件夹都是一个节点项目,完整的package.json和相关的依赖项node_modules.问题是当我尝试将节点应用程序推送到一个这样的文件夹(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'
Run Code Online (Sandbox Code Playgroud)
这是项目的目录结构 -
我决定将todo-api子文件夹单独重构为一个新项目,这次推向Heroku工作得很好 -
我不明白为什么我会得到"无默认语言"错误,特别是当两个地方的节点应用程序完全相同时.有什么想法吗?
Dam*_*IEU 30
Heroku 有一组默认的构建包,当它需要检测你的应用程序的语言时使用。
为了进行检测,它会运行bin/detect每个默认构建包的命令,直到其中一个返回 0 退出代码。
这是节点 buildpack 的命令。
如您所见,它要求 apackage.json位于应用程序的根目录,而不是位于子文件夹中。
这是导致构建失败的差异。您需要将您的应用程序放在 git 存储库的根目录下。
Rob*_*uch 15
就我而言,我没有在根文件夹中设置 Heroku,因为我的 GitHub 存储库被拆分为frontend/和backend/文件夹。他们每个人都有一个package.json。由于 Heroku 需要存储库根文件夹中的package.json文件,因此无法检测语言。
就我而言,我必须在backend/文件夹中初始化一个辅助 GitHub 存储库。在后端项目作为单独的项目推送到 GitHub 后,git push heroku master工作。
aja*_* mp 12
就我而言,我的项目根目录中有 2 个子文件夹
所以我想将 Server 文件夹部署到 Heroku,所以我没有将服务器内容移动到项目的根目录(再次繁忙的工作),而是使用下面的代码来解决这个问题
在你的项目的根目录中执行此操作
git subtree push --prefix sub-folder heroku master
ex:- git subtree push --prefix server heroku master
Run Code Online (Sandbox Code Playgroud)
编辑:在运行上述命令之前添加并提交代码,否则它将无法工作。
这对我有用。
快乐编码。
小智 7
我也面临着同样的问题。我通过更改requirement.txt名称解决了我的问题,requirements.txt所以看看's'。
requirements.txtHeroku 的自动检测需要准确的名称。
| 归档时间: |
|
| 查看次数: |
20196 次 |
| 最近记录: |