Pourquoi ne Heroku ne parviennent pas à détecter Node.js buildpack?
Je git clone un Node.js application (la version spécifiée dans la package.json
être 4.1.2
et que de ma machine à 6.2.2
) et essayé de git push sur Heroku. Mais il n'a pas de construire et a donné à cette erreur:
Pas permis de détecter de définir buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz
Maintenant je l'ai mis la 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
, je suis de nouveau dit:
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 de l'Node.js buildpack de ne pas être détecté, même si je l'ai mis?
Vous devez vous connecter pour publier un commentaire.
Cela signifie qu'un
package.json
fichier n'est pas coché dans la racine de votre projet git, donc Heroku est détecté qu'il n'est pas un Node.js app. Vous pouvez voir cela sur place:Pour résoudre ce problème, vous voulez être sûr il y a un paquet.json à la racine de votre projet (où il ya aussi une .répertoire git), et l'ajouter à git:
Le phrasé ('a échoué à détecter l'ensemble buildpack") pourrait être améliorée. Il devrait probablement dire "a échoué à détecter Node.js app'. Lorsque le buildpack "détecter" script est exécuté (https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/detect), il recherche pour un paquet.fichier json pour vérifier qu'il y a un nœud de l'application disponible pour la construction.
package.json
de sous-répertoire à la racine du dossier où il y a un.git
dossier ou déplacer l'ensemble de l'application du sous-répertoire à la racine du dossier de et puis init un git dans cette racine. Ce serait aider dans le cas où les devs essaient de déployer une application avec des heroku:git push heroku master
C'est parce que Heroku pense que vous êtes le déploiement d'un Nœud de l'application. Mais ce que vous déployez est la
public
répertoire d'un Nœud de l'application, pas de Noeud code.Heroku utilise buildpacks pour sélectionner la façon dont l'ap est manipulé. Vous souhaitez clair que l'association du Noeud:
buildpacks:clear # clear all buildpacks set on the app
Ce qui signifie que “la Prochaine version permettra de détecter buildpack normalement.”, que doit résoudre pour vous.
ref: https://devcenter.heroku.com/articles/buildpacks
heroku buildpacks:clear
fixe mon problème. Merci.J'ai eu le même problème, voici les étapes qui ont résolu le problème.
Essentiellement les détails sont dans le plus d'info lien -
Cette situation peut également se produire si vous supprimez ou renommez un fichier que précédemment conduit à la détection automatique de votre type de demande et donc le réglage automatique de l'objet détecté buildpack sur votre application.
Si vous travaillez sur une branche, vous devez définir maître pour le suivi de votre branche
git branch -f --track master origin/branch_name
Vérifier pour le package.json en maître
git show master:package.json
Si elle est disponible, en essayant de pousser à nouveau.
git push heroku master
`
Quelques petites précisions sur d'autres réponses:
L'erreur "impossible de détecter l'ensemble buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz" ou quelque chose de semblable, cela signifie de dire le GIT COMMIT que vous essayez de pousser à heroku n'a pas été DÉTECTÉ comme un node.js app. (Notez les majuscules pour les subtilités).
J'ai récemment fait une erreur stupide qui m'a fait prendre conscience de ceci: en cours d'Exécution "ls-a" a montré que mon colis.json et .git fichiers sont dans le même répertoire racine, tel que requis par heroku. SAUF que le package.fichier json n'a PAS ÉTÉ inclus dans mon dernier git commit. En cours d'exécution "git status" m'a averti de ce package.json est un sans traces de fichier. Donc je l'ai ajouté, et ta-da, en poussant à heroku travaillé.
Si vous obtenez une erreur liée à buildpack, vérifiez que votre GIT COMMIT a un paquet.fichier json à la racine du répertoire. Si c'est le cas, essayez de spécifier manuellement le buildpack avec "heroku buildpacks:ensemble heroku/nodejs" (ou la langue de votre choix). Cela devrait résoudre la plupart des erreurs liées à buildpack de détection.
La plupart des applications ont au moins un de ces signatures présentes, donc si vous voyez cette erreur, cela signifie généralement un fichier important n'est pas vérifié dans votre dépôt git:
Java: pom.xml
Ruby: Gemfile
Node.js: forfait.json
Python: requirements.txt /setup.py /Pipfile
PHP: compositeur.json /index.php
Vous devez: