¿Por qué Heroku no puede detectar Node.js buildpack?

He clonado una aplicación Node.js (la versión especificada en el package.json es 4.1.2 y la de mi máquina local es 6.2.2) y he tratado de presionar a Heroku. Pero no pudo comstackr y dio este error:

Failed to detect set buildpack https<span>:</span>//codon-buildpacks.s3.amazonaws&period;com/buildpacks/heroku/nodejs.tgz 

Ahora configuro buildpack a heroku / nodejs y recibo este post:

 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. 

Ahora cuando ejecuto git push heroku master , nuevamente me dicen:

 remote: -----> Failed to detect set buildpack https<span>: </span>//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. 

¿Cuáles podrían ser las posibles razones para que el buildpack de Node.js no se detecte incluso si lo configuré?

Solutions Collecting From Web of "¿Por qué Heroku no puede detectar Node.js buildpack?"

Esto significa que un file package.json no está registrado en la raíz de su proyecto git, por lo que Heroku está detectando que no es una aplicación Node.js. Puedes ver esto localmente:

 git show master:package.json 

Para solucionarlo, querrá asegurarse de que hay un package.json en la raíz de su proyecto (donde también hay un directory .git), y añádalo a git:

 git add package.json git commit -m 'track package.json' 

El fraseo ('no se pudo detectar set buildpack') podría mejorarse. Probablemente debería decir 'no se pudo detectar la aplicación Node.js'. Cuando se ejecuta el script "detectar" de buildpack ( https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/detect ), busca un file package.json para verificar que hay una aplicación de nodo disponible para build

Es porque Heroku cree que estás implementando una aplicación Node. Pero lo que está implementando es el directory public de una aplicación Node, no el código Node.

Heroku usa buildpacks para seleccionar cómo se maneja la AP. Desea borrar esa asociación de Nodo:

buildpacks:clear # clear all buildpacks set on the app

Lo que significa que "La próxima versión detectará buildpack normalmente.", Eso debería resolverlo por usted.

ref: https://devcenter.heroku.com/articles/buildpacks

Tuve un problema similar, aquí están los pasos que resolvieron el problema.

 heroku buildpacks:set heroku/nodejs git push heroku master 

Básicamente, los detalles están en el enlace más información –


Esta situación también puede ocurrir si elimina o cambia el nombre de un file que anteriormente condujo a la detección automática de su tipo de aplicación y, por lo tanto, la configuration automática del buildpack detectado en su aplicación.


Algunas pequeñas aclaraciones sobre otras respuestas: El error "Falló al detectar set buildpack https: //codon-buildpacks.s3.amazonaws&period; com / buildpacks / heroku / nodejs.tgz" o algo similar, significa decir que GIT COMMIT lo está intentando para presionar a heroku no se DETECTÓ como una aplicación node.js. (Tenga en count los capitales por sutilezas).

Hace poco cometí un error estúpido que me hizo tomar conciencia de esto: la ejecución de "ls -a" mostró que mis files package.json y .git estaban en el mismo directory raíz, tal como requiere heroku. EXCEPTO que el file package.json NO FUE incluido en mi último commit de git. La ejecución de "estado de git" me alertó de que package.json era un file sin seguimiento. Así que lo agregué, y ta-da, presionando para que Heroku funcionara.

Si obtiene un error relacionado con buildpack, verifique que su GIT COMMIT tenga un file package.json en el directory raíz. Si esto es cierto, intente especificar manualmente el buildpack con "heroku buildpacks: set heroku / nodejs" (o el idioma que desee). Esto debería resolver la mayoría de los errores relacionados con la detección de buildpack.

Si está trabajando en una sucursal, debe configurar el maestro para rastrear su sucursal

git branch -f --track master origin/branch_name

Verifica package.json en master

git show master:package.json

Si está disponible, intenta presionar nuevamente.

git push heroku master

`

La mayoría de las aplicaciones tienen al less una de estas firmas, por lo que si ve este error, generalmente significa que un file importante no está registrado en su repository de git:

  • Java: pom.xml

  • Ruby: Gemfile

  • Node.js: package.json

  • Python: requirements.txt / setup.py / Pipfile

  • PHP: composer.json / index.php

Debieras:

 git add {file} git commit -am 'added {file} git push heroku master