J'ai git cloné une application Node.js (la version spécifiée dans package.json
étant 4.1.2
et celle de ma machine locale étant 6.2.2
) et j'ai essayé de git Push on Heroku. Mais il n'a pas réussi à construire et a donné cette erreur:
Échec de la détection de l'ensemble de buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz.
Maintenant, je mets le buildpack à heroku/nodejs et je reçois ce message:
Buildpack set. Next release on lit-badlands-92088 will use heroku/nodejs.
Run git Push heroku master to create a new release using this buildpack.
Maintenant, quand je lance git Push heroku master
, on me dit à nouveau:
remote: -----> Failed to detect set buildpack
https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz
remote: More info:
https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to lit-badlands-92088.
Quelles pourraient être les raisons possibles pour que le pack de construction Node.js ne soit pas détecté même si je le configure?
Cela signifie qu'un fichier package.json
n'est pas archivé à la racine de votre projet git, donc Heroku détecte qu'il ne s'agit pas d'une application Node.js. Vous pouvez voir ceci localement:
git show master:package.json
Pour résoudre ce problème, assurez-vous qu'il existe un package.json à la racine de votre projet (où se trouve également un répertoire .git), puis ajoutez-le à git:
git add package.json
git commit -m 'track package.json'
La formulation ('échec de la détection de l'ensemble de buildpack') pourrait être améliorée. Il devrait probablement indiquer «échec de la détection de l'application Node.js». Lorsque le script "detect" du buildpack est exécuté ( https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/detect ), il recherche un fichier package.json pour vérifier que il y a une application de noeud disponible à construire.
C’est parce que Heroku pense que vous déployez une application Node. Mais ce que vous déployez, c'est le répertoire public
d'une application Node, pas le code Node.
Heroku utilise des paquets de construction pour sélectionner le mode de traitement de l'ap. Vous voulez effacer cette association de nœud:
buildpacks:clear # clear all buildpacks set on the app
Ce qui signifie que “La prochaine version détectera le buildpack normalement.”, Cela devrait le résoudre pour vous.
J'ai eu le même problème, voici les étapes qui ont résolu le problème.
heroku buildpacks:set heroku/nodejs
git Push heroku master
Fondamentalement, les détails sont dans le lien plus d'infos -
Cette situation peut également se produire si vous supprimez ou renommez un fichier ayant précédemment conduit à la détection automatique du type de votre application et donc au paramétrage automatique du buildpack détecté sur votre application.
Si vous travaillez sur une branche, vous devez définir maître pour suivre votre branche.
git branch -f --track master Origin/branch_name
Vérifiez le package.json dans le maître
git show master:package.json
Si c'est disponible, essayez à nouveau de pousser.
git Push heroku master
`
Quelques petites précisions sur d'autres réponses: L'erreur "Échec de la détection de l'ensemble de buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz" ou quelque chose de similaire, signifie que le GIT COMMIT vous essayez de Pousser à heroku n'a pas été détecté comme une application de noeud.js. (Notez les majuscules pour les subtilités).
J'ai récemment commis une erreur stupide qui m'a fait prendre conscience de cela: exécuter "ls -a" montrait que mes fichiers package.json et .git se trouvaient dans le même répertoire racine, comme l'exigeait heroku. SAUF que le fichier package.json N'ÉTAIT PAS inclus dans mon dernier commit git. L'exécution de "git status" m'a alerté sur le fait que package.json était un fichier non suivi. Alors je l'ai ajouté, et ta-da, pousser à heroku a fonctionné.
Si vous obtenez une erreur liée à buildpack, vérifiez que votre GIT COMMIT a un fichier package.json dans le répertoire racine. Si cela est vrai, essayez de spécifier manuellement le buildpack avec "heroku buildpacks: set heroku/nodejs" (ou la langue de votre choix). Cela devrait résoudre la plupart des erreurs liées à la détection du buildpack.
La plupart des applications ont au moins une de ces signatures. Si vous voyez cette erreur, cela signifie généralement qu'un fichier important n'est pas archivé dans votre référentiel git:
Java: pom.xml
Ruby: Gemfile
Node.js: package.json
Python: Requirements.txt/setup.py/Pipfile
PHP: composer.json/index.php
Vous devriez:
git add {file}
git commit -am 'added {file}
git Push heroku master