Heroku错误地检测到我的Node应用程序是一个Ruby应用程序

我有一个使用Bundler和Guard来处理预编译步骤的Node项目。 这意味着我在我的项目的根目录下有一个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应用程序,而不是一个Ruby应用程序?

看起来有一个新的方法来做到这一点,因为BUILDPACK_URL现在已经被废弃了, 这里解释,但是本质上这个命令是:

$ heroku buildpacks:set heroku/nodejs

您也可以在创build应用程序时指定一个buildpack:

$ heroku create myapp --buildpack heroku/nodejs

解决这个问题,Heroku Support提供了很多帮助: 使用构build包!

通过在BUILDPACK_URL config var中指定一个自定义的buildpack来覆盖Heroku默认的BUILDPACK_URL

 $ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-nodejs 

您也可以在创build应用程序时指定一个buildpack

 $ heroku create -s cedar --buildpack https://github.com/heroku/heroku-buildpack-nodejs 

当你知道的时候很简单。 在Heroku开发中心可以find更多的文档