Heroku ошибочно обнаруживает мое приложение Node как приложение Ruby
У меня есть проект Node, который использует Bundler и Guard для обработки моих шагов предварительной компиляции.
Это означает, что у меня есть Gemfile в корне моего проекта вместе с файлом package.json.
Моя проблема в том, что Heroku полагает, что мой проект - приложение Ruby, только потому, что Gemfile существует. И жалуется, что я не передал Gemfile.lock, который я не хочу совершать.
-----> Heroku receiving push
-----> Ruby app detected
!
! Gemfile.lock is required. Please run "bundle install" locally
! and commit your Gemfile.lock.
!
! Heroku push rejected, failed to compile Ruby app
Есть ли способ сказать Heroku, что приложение является Node, а не рубиновым?
Ответы
Ответ 1
Кажется, есть новый способ сделать это, поскольку BUILDPACK_URL
теперь устарел, объясняется здесь, но по существу команда:
$ heroku buildpacks:set heroku/nodejs
Вы также можете указать buildpack во время создания приложения:
$ heroku create myapp --buildpack heroku/nodejs
Ответ 2
Решение этой проблемы с большой помощью от Heroku Support: использовать сборку!
Отмените стандартные посты Heroku по умолчанию, указав собственный buildpack в BUILDPACK_URL
config var
$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-nodejs
Вы также можете указать buildpack во время создания приложения
$ heroku create -s cedar --buildpack https://github.com/heroku/heroku-buildpack-nodejs
Просто, когда вы это знаете. Более подробную документацию можно найти в Центре Heroku Dev