Heroku: “Er kan geen standaardtaal worden gedetecteerd voor deze app” fout gegenereerd voor node-app

Ik ben NodeJS aan het leren en de cursus die ik volg heeft verschillende projecten, gerangschikt in secties. Ik heb alle projecten onder één hoofdmap, die ook een git-repository.

Elk van deze submappen in de hoofdmap is een knooppuntproject op zich, compleet met package.jsonen gerelateerde afhankelijkheden in node_modules. Het probleem is dat toen ik probeerde de node-app in een dergelijke map (todo-api) naar Heroku te duwen, ik de volgende foutmelding kreeg –

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'

Dit is de directorystructuur voor het project –

Ik besloot om de submap todo-apihelemaal zelf om te bouwen naar een nieuw project, en deze keer werkt de push naar Heroku prima –

Ik begrijp niet waarom ik de foutmelding ‘geen standaardtaal’ krijg, vooral wanneer de node-app op beide plaatsen precies hetzelfde is. Enig idee?


Antwoord 1, autoriteit 100%

Heroku heeft een set standaard buildpacks, die worden gebruikt wanneer het de taal van je app moet detecteren.
Om die detectie uit te voeren, voert het de opdracht bin/detectuit van elk van die standaard buildpacks, totdat een van hen een 0 exit-code retourneert.

Dit is de opdracht voor het node-buildpack.
Zoals je kunt zien, moet een package.jsonzich in de hoofdmap van je app bevinden, niet in een submap.

Dit is het verschil waardoor uw build mislukt. Je moet je app in de root van je git-repository plaatsen.


Antwoord 2, autoriteit 56%

In mijn geval had ik Heroku niet ingesteld in de hoofdmap, omdat mijn GitHub-repository was opgesplitst in mappen frontend/en backend/. Elk van hen had een package.json. Aangezien Heroku het bestand package.jsonnodig heeft in de hoofdmap van de repository, kan het de taal niet detecteren.

In mijn geval moest ik een secundaire GitHub-repository initialiseren in de map backend/. Nadat het backend-project als afzonderlijk project naar GitHub was gepusht, werkte git push heroku master.


Antwoord 3, autoriteit 37%

In mijn geval had ik bestanden in behandeling die moesten worden vastgelegd op github 🙂


Antwoord 4, autoriteit 15%

U moet een taal instellen voor het project. Ga zonder de terminal te gebruiken naar het Heroku-project. Klik op instellingen, scroll naar beneden Build Backbacks en voeg een taal toe (nodejs, etc).


Antwoord 5, autoriteit 11%

Ik kreeg hetzelfde bericht

! Er kan geen standaardtaal worden gedetecteerd voor deze app.

Ik zat op een andere branch dan master bij het implementeren. Daarom werkte het niet.

afbeelding

Ik heb de branch veranderd in master en het werkte.

Vergeet niet om “start” : “node app.js” in de scripts van package.json te zetten

Anders krijg je een H10-codefout.
voer hier de afbeeldingsbeschrijving in

De app werkte toen.
voer hier de afbeeldingsbeschrijving in


Antwoord 6, autoriteit 4%

In mijn geval had ik 2 submappen in de hoofdmap van mijn project

  • Klant
  • Server

Dus ik wil de servermap naar Heroku implementeren, dus in plaats van de serverinhoud naar de hoofdmap van het project te verplaatsen (wederom hectisch werk), gebruikte ik onderstaande code om dit op te lossen

doe dit in de hoofdmap van uw project

git subtree push --prefix sub-folder heroku master
ex:- git push --prefix server heroku master

dit werkte voor mij.

Veel plezier met coderen.


Antwoord 7

Ik had hetzelfde probleem en loste het op door mijn server-side-bestanden, inclusief de package.jsonin de hoofdmap te plaatsen, waarna het werkte.


Antwoord 8

Dit komt waarschijnlijk omdat uw package.json- en package-lock.json-bestanden zich in de hoofdmap bevinden en u twee aparte mappen hebt voor client en server.

verplaats die bestanden naar de servermap en probeer “git push heroku master”

Het zou moeten werken


Antwoord 9

U moet uw requirements.txt-bestand correct maken.
Ik kreeg deze fout omdat ik heb gebruikt (PIP Freeze & GT; vereisten. TXT) -opdrachten voor het maken van het bestand.
Maar het moet PIP Freeze & GT zijn; vereisten.txt zonder spaties.

Other episodes