Подтвердить что ты не робот

Почему Heroku не обнаруживает Node.js buildpack?

I git клонировано приложение Node.js(версия, указанная в файле package.json 4.1.2, а моя локальная машина - 6.2.2) и попыталась git нажать на Heroku. Но он не смог построить и дал эту ошибку:

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

Теперь я устанавливаю buildpack в heroku/nodejs, и я получаю это сообщение:

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.

Теперь, когда я запускаю git push heroku master, мне снова говорят:

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.

Какими могут быть возможные причины для того, чтобы .js buildpack не был обнаружен, даже если я его установил?

4b9b3361

Ответ 1

Это означает, что файл package.json не проверен в корневом каталоге вашего проекта git, поэтому Heroku обнаруживает, что он не является приложением Node.js. Вы можете увидеть это локально:

git show master:package.json

Чтобы исправить это, вы должны быть уверены, что в корневом каталоге вашего проекта есть package.json(где есть также каталог .git) и добавьте его в git:

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

Фраза ( "не удалось обнаружить set buildpack" ) может быть улучшена. Вероятно, он должен сказать: "не удалось обнаружить приложение Node.js". Когда выполняется buildpack "обнаружение" script (https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/detect), он ищет файл package.json, чтобы убедиться, что доступно приложение node для построить.

Ответ 2

Это потому, что Heroku считает, что вы развертываете приложение Node. Но то, что вы развертываете, это каталог public приложения Node, а не Node.

Heroku использует buildpacks, чтобы выбрать способ обработки ap. Вы хотите очистить ассоциацию Node:

buildpacks:clear # clear all buildpacks set on the app

Это означает, что "Следующий релиз будет нормально обнаруживать buildpack". Это должно решить его для вас.

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

Ответ 3

У меня была аналогичная проблема, вот шаги, которые решили проблему.

heroku buildpacks:set heroku/nodejs
git push heroku master

В основном детали указаны в дополнительной информации -


Эта ситуация также может возникнуть, если вы удалите или переименуете файл, который ранее приводил к автоматическому обнаружению вашего типа приложения и, таким образом, автоматически устанавливал обнаруженный buildpack в вашем приложении.


Ответ 4

Некоторые крошечные разъяснения по другим ответам: Ошибка "Не удалось обнаружить set buildpack https://codon-buildpacks.s3.amazonaws&period; com/buildpacks/heroku/nodejs.tgz" или что-то подобное, означает сказать, что GIT COMMIT, который вы пытаетесь нажать на героку, был не DETECTED как приложение node.js. (Обратите внимание на капиталы для тонкостей).

Недавно я сделал глупую ошибку, из-за которой я знал об этом: Запуск "ls -a" показал, что мои файлы package.json и .git были в том же корневом каталоге, что и требуется героку. ЗА ИСКЛЮЧЕНИЕМ, что файл package.json не включен в мой последний коммит GIT. Запуск "git status" предупредил меня, что package.json был неподписанным файлом. Поэтому я добавил его, и та-да, нажав на герою, работал.

Если вы получили сообщение об ошибке, связанной с buildpack, убедитесь, что ваш GIT COMMIT имеет файл package.json в корневом каталоге. Если это так, попробуйте вручную указать buildpack с помощью "heroku buildpacks: set heroku/nodejs" (или вашего желаемого языка). Это должно устранить большинство ошибок, связанных с обнаружением buildpack.

Ответ 5

Если вы работаете с веткой, вам нужно установить мастер для отслеживания ветки

git branch -f --track master origin/branch_name

Проверьте, что package.json в master

git show master:package.json

Если это доступно, повторите попытку.

git push heroku master

`

Ответ 6

В большинстве приложений есть хотя бы одна из этих подписей, поэтому, если вы видите эту ошибку, обычно это означает, что важный файл не проверяется в вашем репозитории git:

  • Java: pom.xml

  • Ruby: Gemfile

  • Node.js: package.json

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

  • PHP: composer.json/index.php

Вы должны:

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