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