Heroku: “Aucune langue par défaut n'a pu être détectée pour cette application” erreur renvoyé pour le nœud app
Je suis à l'apprentissage de NodeJS et le cours que je suis a plusieurs projets, organisé par les sections. J'ai tous les projets sous un dossier principal, qui est aussi un dépôt git.
Chacun de ces sous-dossiers dans le dossier principal est un nœud de projet par lui-même, complète avec package.json
et les dépendances connexes dans node_modules
. Le problème, c'est quand j'ai essayé de pousser le nœud de l'application dans un dossier(todo-api
) à heroku, j'obtiens l'erreur suivante -
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'
C'est la structure de répertoire pour le projet -
J'ai décidé de refactoriser le todo-api
sous-dossier dans un nouveau projet à lui tout seul, et cette fois le push Heroku fonctionne très bien -
Je ne comprends pas pourquoi je reçois le "pas de langue par défaut" erreur, surtout quand le nœud de l'app est exactement le même dans les deux endroits. Toutes les pensées?
OriginalL'auteur Manish Giri | 2017-04-12
Vous devez vous connecter pour publier un commentaire.
Heroku a un ensemble de défaut buildpacks, utilisé lorsque l'on doit détecter la langue de votre application.
Afin de faire de la détection, il exécute le
bin/detect
de commande de chacun de ceux par défaut buildpacks, jusqu'à ce que l'un d'entre eux renvoie un code de sortie 0.C'est la commande pour le nœud buildpack.
Comme vous pouvez le voir, il nécessite un
package.json
être situé à la racine de votre application, et non dans un sous-dossier.C'est la différence la cause de votre échec de la copie. Vous avez besoin de mettre votre application à la racine de votre dépôt git.
OriginalL'auteur Damien MATHIEU
Dans mon cas, je n'avais pas Heroku mis en place dans le dossier racine, parce que mon dépôt GitHub a été scindée en frontend/ et backend/ dossiers. Chacun d'eux avait un paquet.json. Depuis Heroku besoins de la paquet.json fichier dans le dossier racine du référentiel, il ne peut pas détecter la langue.
Dans mon cas, j'ai eu pour initialiser un secondaire GitHub dans le backend/ dossier. Après le backend projet a été poussé à GitHub en tant que projet distinct,
git push heroku master
travaillé.OriginalL'auteur Robin Wieruch