Railsチュートリアル備忘録（1章 1.5.1）②

## 環境
macOS Catalina 10.15.5
Rails 6.0.3

Railsチュートリアルとそれに付随するいろいろを書いていきます。
Githubに慣れたいので、チュートリアルは第6版に準拠しています。

## 1.5.1 Herokuのセットアップとデプロイ
### リスト 1.21
`$ heroku create`

```
 ›   Warning: heroku update available from 7.42.13 to 7.43.0.
Creating app... done, ⬢ *****
https://*****.herokuapp.com/ | https://git.heroku.com/*****.git
```
`$ git push heroku master`


```
remote:        LoadError: cannot load such file -- uglifier
```
```
error: failed to push some refs to 'https://git.heroku.com/*****.git'
```

下記を参考に、
https://algorithm.joho.info/heroku/error-failed-to-push-some-refs-to/
`$ git fetch`
`$ git rebase heroku/master`
を実行したが、下記のようになり解決せず。

```
fatal: invalid upstream 'heroku/master'
```
また、下記を参考に、
https://ja.stackoverflow.com/questions/67934/git-push-heroku-master%E3%81%A7%E7%99%BA%E7%94%9F%E3%81%99%E3%82%8B%E3%82%A8%E3%83%A9%E3%83%BC-precompiling-assets-failed-error-failed-to-pu
Gemfile に`uglifier` のgem追加をしてみる。

```php:Gemfile
gem 'bootsnap',   '1.4.5', require: false
gem 'uglifier'
```
再度、下記実行
`$ git commit -a -m "Update Gemfile for Heroku"`
`$ git push heroku master`

`remote:        LoadError: cannot load such file -- uglifier`は消えたが
`error: failed to push some refs to~`は変わらず。

`$ git push heroku master`実行時のエラーに下記があった。

```
remote: ###### WARNING:
remote: 
remote:        This buildpack was created as a stop-gap measure to allow running applications with Bundler 2 on Heroku.
remote:        Heroku now supports Bundler 2 directly: https://devcenter.heroku.com/changelog-items/1563
remote:        
remote:        Please discontinue use of this buildpack and instead directly use the `heroku/ruby` buildpack.
remote:        
remote:        To remove this buildpack use the `heroku buildpacks` command to list your existing buildpacks.
remote:        
remote:        If you only have one buildpack listed you can run:
remote:        
remote:        ```
remote:        heroku buildpacks:set heroku/ruby
remote:        ```
remote:        
remote:        If you have multiple buildpacks, you'll need to add the buildpack to the correct location using
remote:        `heroku buildpacks:add heroku/ruby -i <correct index>` and then remove this buildpack via:
remote:        
remote:        ```
remote:        heroku buildpacks:remove https://github.com/bundler/heroku-buildpack-bundler2
remote:        ```
```
`$ heroku buildpacks`では下記のBuildpackのみ。

```
https://github.com/bundler/heroku-buildpack-bundler2
```
そのため`$ heroku buildpacks:set heroku/ruby`を実行。

```
Buildpack set. Next release on pacific-atoll-18588 will use heroku/ruby.
Run git push heroku main to create a new release using this buildpack.
```
再度`$ git push heroku master`すると今度は下記の警告。

```
remote:        webpack binstubs not found.
remote:        Have you run rails webpacker:install ?
remote:        Make sure the bin directory or binstubs are not included in .gitignore
remote:        Exiting!
```
https://archive.blog.inomar.me/2018/08/19/rails5-1%E3%81%A7webpack%E3%81%8C%E4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AE%E3%81%A7vuejs%E3%81%A7%E9%81%8A%E3%82%93%E3%81%A7%E3%81%BF%E3%81%9F/
上記を参考にして`$ bundle exec rails webpacker:install`を実行。
再度`$ git push heroku master`しても上記の警告が消えず。

```
remote:        webpack binstubs not found.
remote:        Have you run rails webpacker:install ?
remote:        Make sure the bin directory or binstubs are not included in .gitignore
remote:        Exiting!
```
`$ git push heroku main`を実行。

```
error: src refspec main does not match any
error: failed to push some refs to 'https://git.heroku.com/*****.git'
```
`$ git push heroku main -f`で強制プッシュしようとしても同じ結果だったので
gitのリポジトリを削除・再作成し、herokuのアプリも再作成してadd、commit、pushを行ったが、
以下のエラーは消えず…

```
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/*****.git'
```
ダメ元で再度`$ git push heroku main -f`を実行したところ、ようやく完了。
無意味なダウンロード等を結構してしまったと思うのでこの後無事に動作するのかが不安…