STUDY MEMO

学習のメモ書き

< Heroku > herokuのステージング環境とプロダクション環境のCLIの紐付け

以下のコマンドでstagingをデフォルトのherokuリモートにする。

$ git config heroku.remote staging

.git/configファイルに以下が追記される。

[heroku]
  remote = staging

この記載がされることで、CLIコマンドがデフォルトでstagingアプリを管理するようになる。

以下のようにremoteを追加されていれば、

$ heroku git:remote -a アプリ名(staging)
$ heroku git:remote -r production -a アプリ名(production)

.git/configファイルは以下のようになる。

[heroku]
    remote = staging
[remote "staging"]
    url = https://git.heroku.com/アプリ名-staging.git
    fetch = +refs/heads/*:refs/remotes/staging/*
[remote "production"]
    url = https://git.heroku.com/アプリ名.git
    fetch = +refs/heads/*:refs/remotes/production/*

上記という前提があると、以下のコマンドを実行することで、productionアプリに対して実行ができる。

$ heroku logs -t -r production

参考文献

アプリの複数の環境の管理 | Heroku Dev Center

< Heroku エラー編 > Error: Missing required flag

stagingからproductionにpromoteしようとした時、以下のエラーが出た。

$ heroku pipelines:promote
›   Error: Missing required flag:
›     -a, --app APP  app to run command against
›   See more help with --help

flagがない、ということでgit remote -vを確認するとherokuのサーバーと紐づいてなかった。

そのため上記エラーが発生した模様。

以下のコマンドで紐付けをした。

$ heroku git:remote -a アプリ名

<Ruby on Rails> seedの分割

分割理由

DBの初期データ投入のためにseedファイルを使用したが、量が多いので分割して見やすくしたかった。

1の方法がスマートだが、2の方法も一応記入しておく。

共通

dbにseedsディレクトリを作成

$ mkdir db/seeds

seedsディレクトリの下に任意のseedファイルを作成

$ touch db/seeds/result.rb

方法1. seed.rbにseedsディレクト

seeds.rbにseedsディレクトリ以下を読み込むように設定

Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb')) do |file|
  load(file)
end

これにより、bundle exec rails db:seedでseedsディレクトリ以下のrbファイルが読み込まれ、初期データを一度に作成することができる。

方法2. rakeタスクとして保存

rakeタスクに実行方法を記載

lib/tasks/seed.rakeを作成

$ mkdir lib/tasks/seed.rake
Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb')).each do |file|
  desc "Load the seed data from db/seeds/#{File.basename(file)}."
  task "db:seed:#{File.basename(file).gsub(/\..+$/, '')}" => :environment do
    load(file)
  end
end

●File.joinFile.join("a","b")と書いた時、"a/b"となる。そのため、File.join(Rails.root, 'db', 'seeds', '*.rb')の部分は

pry(main)> Rails.root
=> #<Pathname:/Users/user_name/workspace/runteq/PF/kinoko2>

ということから、Users/user_name/workspace/runteq/PF/kinoko2/db/seeds/*rbを指定したこととなる。

●Dir.grobは、ワイルドカードの展開を行い、パターンにマッチするファイル名を文字列の配列として返すので、

pry(main)> Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb'))
=> ["/Users/user_name/workspace/runteq/PF/kinoko2/db/seeds/result.rb"]

となる。

seedsディレクトリ内に、別のファイルwise_saying.rbがあるとすると、

pry(main)> Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb'))
=> ["/Users/user_name/workspace/runteq/PF/kinoko2/db/seeds/result.rb",
 "/Users/user_name/workspace/runteq/PF/kinoko2/db/seeds/wise_saying.rb"]

となる。

●descメソッドは、直後のRakeタスクの説明を登録するため、 "Load the seed data from db/seeds/#{File.basename(file)}."がtaskの説明文として登録される。

$ bundle exec rake -D
...
rake db:seed:result
    Load the seed data from db/seeds/result.rb.

rake db:seed:wise_saying
    Load the seed data from db/seeds/wise_saying.rb.
...

●File.basename(filename)は、filename の一番後ろのスラッシュに続く要素を返す。

[12] pry(main)> Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb')).each {|file| p "#{File.basename(file)}."}
"result.rb."
"wise_saying.rb."

正規表現を使ってdb/seeds下のファイル名の拡張子名を除外する。 メタ文字をリテラルのように、文字としてマッチさせるためには、\をつける。(メタ文字:( ) [ ] { } . ? + * | )

..:いずれかの1文字+:1回以上 (greedy)

$:行末にマッチする。行末とは文字列の末尾もしくは改行の手前を意味する。

/..+$/という正規表現は、デリミタの/(スラッシュ)で囲まれていて、/※の後にいずれかの文字が1つ以上ある、文字列を指している。※ /(スラッシュ)は(バックスラッシュ)でエスケープされている。

gsub(pattern, replace)は、文字列中でpatternにマッチする部分全てを文字列replaceで置き換えた文字列を生成して返すので、

pry(main)> Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb')).each {|file| p "#{File.basename(file).gsub(/\..+$/, '')}"}
"result"
"wise_saying"

となり、"db:seed:#{File.basename(file).gsub(/..+$/, '')}"はdb:seed:resultとdb:seed:wise_sayingになり、taskが定義される。

●taskが実行されるとファイルが読み込まれるようにするために、load(file)でRubyのプログラムfileをロードして実行する。ロードするモジュールとしてはrequireもあるが、require はライブラリのロードに使用され、loadは設定ファイルの読み込みなどに使用される。

rakeタスクに反映されてるか確認

$ rake -h
...
→ -T, --tasks [PATTERN]
Display the tasks (matching optional PATTERN) with descriptions, then exit. -AT combination displays all of tasks contained no description.
...

(オプションのPATTERNに一致する)タスクを説明とともに表示し、終了する。
-ATコンビネーションでは、説明のないタスクをすべて表示します。
$ bundle exec rake -T
...
rake db:seed:result                     # Load the seed data from db/seeds/result.rb
rake db:seed:wise_saying                # Load the seed data from db/seeds/wise_saying.rb
...

参考文献

Railsでseedデータを分割して実行できるようにする - Passion make things more better

File.join (Ruby 3.0.0 リファレンスマニュアル)

Dir.[] (Ruby 3.0.0 リファレンスマニュアル)

File.basename (Ruby 3.0.0 リファレンスマニュアル)

Kernel#desc (Ruby 3.0.0 リファレンスマニュアル)

正規表現とは?メタ文字とサンプル一覧 | WWWクリエイターズ

Kernel.#load (Ruby 3.0.0 リファレンスマニュアル)

http://interfirm.hatenablog.com/entry/2014/05/30/195044

<Ruby on Rails > development環境でproduction環境のようにerror画面を発生させる設定

忘れてたのでメモ

# config/development.rb

# Show full error reports.
config.consider_all_requests_local: false

true:デバッグ情報がHTTPレスポンスに出力され、コンテキストがRails::Infoコントローラによって/rails/info/propertiesに出力される。

develpmentとtestのdefault設定:true
productionのdefault設定:false

<Ruby on Rails エラー編> production環境でのrails sでActionController::RoutingErrorのエラーが発生

$ bundle exec rails s -e production

プロダクション環境でサーバーを立ち上げたところ、scssが反映されていなかった。
原因を調べるためにproduction.logを見たところ、以下のようなログになっていた。

I, [2021-06-08T22:49:53.332919 #8860]  INFO -- : [d81593ef-a63e-4d17-b96a-5aeced17da63] Started GET "/" for 127.0.0.1 at 2021-06-08 22:49:53 +0900
I, [2021-06-08T22:49:53.471239 #8860]  INFO -- : [d81593ef-a63e-4d17-b96a-5aeced17da63] Processing by TopController#index as HTML
I, [2021-06-08T22:49:53.534582 #8860]  INFO -- : [d81593ef-a63e-4d17-b96a-5aeced17da63]   Rendered top/index.html.slim within layouts/application (Duration: 40.9ms | Allocations: 19794)
I, [2021-06-08T22:49:53.603623 #8860]  INFO -- : [d81593ef-a63e-4d17-b96a-5aeced17da63] [Webpacker] Everything's up-to-date. Nothing to do
I, [2021-06-08T22:49:53.781214 #8860]  INFO -- : [d81593ef-a63e-4d17-b96a-5aeced17da63]   Rendered shared/_privacy_policy.html.slim (Duration: 174.0ms | Allocations: 21561)
I, [2021-06-08T22:49:53.803296 #8860]  INFO -- : [d81593ef-a63e-4d17-b96a-5aeced17da63]   Rendered shared/_terms_of_use.html.slim (Duration: 20.5ms | Allocations: 23845)
I, [2021-06-08T22:49:53.803536 #8860]  INFO -- : [d81593ef-a63e-4d17-b96a-5aeced17da63]   Rendered layout layouts/application.html.slim (Duration: 310.0ms | Allocations: 76746)
I, [2021-06-08T22:49:53.804010 #8860]  INFO -- : [d81593ef-a63e-4d17-b96a-5aeced17da63] Completed 200 OK in 333ms (Views: 318.3ms | Allocations: 78813)
I, [2021-06-08T22:49:53.917030 #8860]  INFO -- : [92858f66-6b92-4867-9074-0e4ce8ab7a25] Started GET "/packs/js/application-731e33cfa57f5ac52f87.js" for 127.0.0.1 at 2021-06-08 22:49:53 +0900
F, [2021-06-08T22:49:53.917811 #8860] FATAL -- : [92858f66-6b92-4867-9074-0e4ce8ab7a25]   
[92858f66-6b92-4867-9074-0e4ce8ab7a25] ActionController::RoutingError (No route matches [GET] "/packs/js/application-731e33cfa57f5ac52f87.js"):
[92858f66-6b92-4867-9074-0e4ce8ab7a25]   

/packs/js/~がActionController::RoutingErrorを起こしている。

対処法

public以下のpacksが読み込めていない。
config/environments/production.rbのconfig.public_file_server.enabledをtrueにすることで読み込むことができるようになる。

config.public_file_server.enabled:
public/ディレクトリ内の静的アセットを扱うかどうかを指定します。
デフォルトではtrueが設定されますが、production環境ではアプリケーションを実行するNginxやApacheなどのサーバーが静的アセットを扱う必要があるので、falseになります。
デフォルトの設定とは異なり、WEBrickをでアプリケーションをproductionモードで実行したり(WEBrickをproductionで使うことは推奨されません)テストしたりする場合はtrueに設定します。
そうしないとページキャッシュが利用できなくなり、public/ディレクトリ以下に常駐する静的ファイルへのリクエストも有効になりません。
Rails アプリケーションを設定する - Railsガイド

<Ruby on Rails エラー編> ActionView::Template::Error (Webpacker can't find application.css ~ )

エラー

webpackerを使ってscssを管理しようとしたとき、以下のエラーが発生。

I, [2021-06-08T10:28:14.737101 #30893]  INFO -- : [c266ae5e-e551-43a4-81bb-15fdfa2c28cf] Started GET "/" for 127.0.0.1 at 2021-06-08 10:28:14 +0900
I, [2021-06-08T10:28:14.749872 #30893]  INFO -- : [c266ae5e-e551-43a4-81bb-15fdfa2c28cf] Processing by TopController#index as HTML
I, [2021-06-08T10:28:14.795068 #30893]  INFO -- : [c266ae5e-e551-43a4-81bb-15fdfa2c28cf]   Rendered top/index.html.slim within layouts/application (Duration: 27.3ms | Allocations: 19668)
I, [2021-06-08T10:28:14.806765 #30893]  INFO -- : [c266ae5e-e551-43a4-81bb-15fdfa2c28cf]   Rendered layout layouts/application.html.slim (Duration: 39.1ms | Allocations: 30019)
I, [2021-06-08T10:28:14.806993 #30893]  INFO -- : [c266ae5e-e551-43a4-81bb-15fdfa2c28cf] Completed 500 Internal Server Error in 57ms (Allocations: 32489)
F, [2021-06-08T10:28:14.808044 #30893] FATAL -- : [c266ae5e-e551-43a4-81bb-15fdfa2c28cf]   
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf] ActionView::Template::Error (Webpacker can't find application.css in /Users/user_name/workspace/directory/directory/app_name/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment
   unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to reflect updates.
3. You have misconfigured Webpacker's config/webpacker.yml file.
4. Your webpack configuration is not creating a manifest.
Your manifest contains:
{
  "application.js": "/packs/js/application-5cb4ca266ae261975578.js",
  "application.js.map": "/packs/js/application-5cb4ca266ae261975578.js.map",
  "entrypoints": {
    "application": {
      "js": [
        "/packs/js/application-5cb4ca266ae261975578.js"
      ],
      "js.map": [
        "/packs/js/application-5cb4ca266ae261975578.js.map"
      ]
    },
    "stylesheets/result/index": {
      "js": [
        "/packs/js/stylesheets/result/index-ba2c33120e6a24a6616f.js"
      ],
      "js.map": [
        "/packs/js/stylesheets/result/index-ba2c33120e6a24a6616f.js.map"
      ]
    },
    "stylesheets/top/index": {
      "js": [
        "/packs/js/stylesheets/top/index-8dc680d315d67e28709d.js"
      ],
      "js.map": [
        "/packs/js/stylesheets/top/index-8dc680d315d67e28709d.js.map"
      ]
    }
  },
  "media/images/akadamakinugasatake.png": "/packs/media/images/akadamakinugasatake-04ddd2527167f8c43cba235efe2d15e9.png",
  "media/images/amigasatake.png": "/packs/media/images/amigasatake-a0045880245ff738c222123689b941d1.png",
  "media/images/benitengutake.png": "/packs/media/images/benitengutake-5df2558d6c68efd4e0a8b48f25dba3e3.png",
  "media/images/kaentake.png": "/packs/media/images/kaentake-0cdd4fcaf8fed2b3fcd95b8576a415de.png",
  "media/images/kakishimezi.png": "/packs/media/images/kakishimezi-ae4b6d03dfa8273df8a73192bbef195d.png",
  "media/images/kanzoutake.png": "/packs/media/images/kanzoutake-aa514dfa626e78d2df9892d4fc2b4154.png",
  "media/images/kinoko.png": "/packs/media/images/kinoko-f10be6dee55e1eb819cd1dea3fe26902.png",
  "media/images/kusaurabenitake.png": "/packs/media/images/kusaurabenitake-7ac1b93afd48b39bb2044690c8f93de8.png",
  "media/images/sasakurehitoyotake.png": "/packs/media/images/sasakurehitoyotake-035a9182816ef54713dac9023d609445.png",
  "media/images/shirotamagotengutake.png": "/packs/media/images/shirotamagotengutake-49f131d360d889ef857590b41043c7e4.png",
  "media/images/tukiyotake.png": "/packs/media/images/tukiyotake-337979c48dbf4355c1e43d0fdb6b1f90.png",
  "stylesheets/result/index.js": "/packs/js/stylesheets/result/index-ba2c33120e6a24a6616f.js",
  "stylesheets/result/index.js.map": "/packs/js/stylesheets/result/index-ba2c33120e6a24a6616f.js.map",
  "stylesheets/top/index.js": "/packs/js/stylesheets/top/index-8dc680d315d67e28709d.js",
  "stylesheets/top/index.js.map": "/packs/js/stylesheets/top/index-8dc680d315d67e28709d.js.map"
}
):
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf]     12:     meta[name="viewport" content="width=device-width,initial-scale=1"]m
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf]     13:     = csrf_meta_tags
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf]     14:     = csp_meta_tag
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf]     15:     = stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf]     16:     = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf]     17:   body
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf]     18:     header.py-4
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf]   
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf] app/views/layouts/application.html.slim:15
F, [2021-06-08T10:28:14.808044 #30893] FATAL -- : [c266ae5e-e551-43a4-81bb-15fdfa2c28cf]   
[c266ae5e-e551-43a4-81bb-15fdfa2c28cf] ActionView::Template::Error (Webpacker can't find application.css in /Users/user_name/workspace/directory/directory/app_name/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment
   unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to reflect updates.
3. You have misconfigured Webpacker's config/webpacker.yml file.
4. Your webpack configuration is not creating a manifest.

Webpacker can't find application.cssということ。

trueになっていると自動でcssファイルを探してしまうため、webpacker.ymlのproductの設定を

extract_css: false

にすると、cssを探さなくなる。

<Ruby on Rails> レイアウトテンプレートのデフォルトのhead

過去の描き直し。追加するかも
ここではwebpackerについては詳細は記載しない。
rails6

テンプレートファイルとは

viewファイルのこと。

動的なデータをhtmlに入れるような扱いをされていることからテンプレート(雛形)ファイルと呼ばれる。

レイアウトテンプレートとは

application.htmlのような共通部分がまとめられるようなファイルをレイアウトといい、viewファイルであるので、レイアウトテンプレートとも呼ばれる。

デフォルトでは以下のようなheadになっている。

- head
    = csrf_meta_tags
    = csp_meta_tag
    = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
    = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'

assets/stylesheets/application.cssを参照する、という記載。

webpackerを使用するときは、javascript/packsにあるエンドポイントを利用してcssを取り込むため、stylesheet_pack_tagという記載になる。

stylesheet_pack_tag:https://www.rubydoc.info/gems/webpacker/Webpacker%2FHelper:stylesheet_pack_tag

stylesheet_link_tag:https://railsdoc.com/page/stylesheet_link_tag

'data-turbolinks-track': 'reload':https://techtechmedia.com/turbolinks-rails/

media: 'all':https://reference.hyper-text.org/html5/attribute/media/

app/javascript/packsのapplication.jsを参照するという記載。

https://i.gyazo.com/330af057aa0a3a243d0e3e1e4b1e91f2.png

csp_meta_tag:

クロスサイトスクリプティング攻撃を緩和するコンテンツセキュリティポリシー(Content Security Policy: CSP)を実装。

csrf_meta_tags:

クロスサイトリクエストフォージェリー(Cross-Site Request Forgery: CSRF)攻撃を緩和

参考:

[https://railstutorial.jp/chapters/static_pages?version=6.0#code-application_layout:embed:cite]

[https://railsdoc.com/page/layouts:embed:cite]

<Ruby on Rails> データベースの設定(postgresql)

データベースの接続方法

・config/database.yml
環境変数

両方存在する場合

提供された接続情報が重複している:環境変数が優先
提供された接続情報が競合している:環境変数が優先

両方存在していて、かつconfig/database.ymlが優先されるようにしたい場合、database.ymlで"url"サブキーで明示的にURL接続を指定する。

production:
  url: my_database

production環境では、database.yml内で明示的にENV['DATABASE_URL']を使うのがベストプラクティス。
理由:データベース接続のパスワード等の秘密情報をGitなどのソースコントロールに直接登録するのは望ましくないため。

# config/database.yml
...
production:
  <<: *default
  database: appname_production
  username: appname
  password: <%= ENV['APPNAME_DATABASE_PASSWORD'] %>
  url: <%= ENV['DATABASE_URL'] %>
...

参考文献

Rails アプリケーションを設定する - Railsガイド

< コマンド > heroku

続きは後で書く。

環境設定について

現在の環境設定の値を表示する

$ heroku config
=== app_name Config Vars
DATABASE_URL:
LANG:
RACK_ENV:
RAILS_ENV:
RAILS_LOG_TO_STDOUT:
RAILS_SERVE_STATIC_FILES:
SECRET_KEY_BASE:

$ heroku config:get DATABASE_URL
DATABASE_URLの中身が出力

herokuにcredentials.yml.enc内容を反映

$ heroku config:set RAILS_MASTER_KEY=`cat config/master.key`

ログの表示

ログの表示

デフォルトで100行のログを返すため、--num (または -n)オプションで取得するログ行数を指定する。 指定できるのはmax1500行。

$ heroku logs
$ heroku logs -n 行数

リアルタイム tail

最新のログを表示し、アプリからログのライブストリームを表示する。 Ctrl+C を押して戻る。(1時間後自動で戻る。)

$ heroku logs --tail

logのフィルタリング

特定のdynoをフィルタリングで取得。 ベース名(--dyno web など)とフルネーム (--dyno web.1 など)も利用できる。

$ heroku logs --dyno router
--dynoは-dでも可

特定のsourceをフィルタリングで取得。

$ heroku logs --source app
--sourceは-sでも可

組み合わせることもできる。

$ heroku logs --source app --dyno worker
  • -tailと組み合わせることもできる。 リアルタイムストリームを取得する。
$ heroku logs --source app --tail

railsコンソールを開く

$ heroku run rails console

データベース関連

データベースの移行

$ heroku run rake db:migrate

herokuのデータベースをリセットする(pg使用時)

$ heroku pg:reset DATABASE

herokuのデータベースに初期データを入れる

$ heroku run rails db:seed

herokuのデータベースにseedファイルを入れる

$ heroku run rails db:seed

git remoteにherokuを追加

$ heroku git:remote -a herokuのアプリ名

参考文献

https://devcenter.heroku.com/ja/articles/config-vars

ログ記録 | Heroku Dev Center

https://haru890.hateblo.jp/entry/2020/07/07/233322

<Ruby on Rails エラー編> herokuでデプロイするときに発生したエラー2

1回目

-----> Building on the Heroku-20 stack
-----> Using buildpack: heroku/ruby
-----> Ruby app detected
-----> Installing bundler 2.2.16
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-3.0.1
-----> Installing dependencies using bundler 2.2.16
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       Fetching gem metadata from https://rubygems.org/..........
       Using rake 13.0.3
       Using minitest 5.14.4
       Using zeitwerk 2.4.2
       Using builder 3.2.4
       Using erubi 1.10.0
       Fetching concurrent-ruby 1.1.9
       Using racc 1.5.2
       Using crass 1.0.6
       Using rack 2.2.3
       Using nio4r 2.5.7
       Using websocket-extensions 0.1.5
       Using marcel 1.0.1
       Using mini_mime 1.0.3
       Using public_suffix 4.0.6
       Using aws-eventstream 1.1.1
       Fetching aws-partitions 1.465.0
       Using jmespath 1.4.0
       Using method_source 1.0.0
       Using thor 1.1.0
       Using msgpack 1.4.2
       Using buftok 0.2.0
       Using bundler 2.2.16
       Using unf_ext 0.0.7.7
       Using equalizer 0.0.11
       Using ffi 1.15.1
       Using hashie 4.1.0
       Using hpricot 0.8.6
       Using http-form_data 2.3.0
       Using http_parser.rb 0.6.0
       Using thread_safe 0.3.6
       Using multipart-post 2.1.1
       Using naught 1.1.0
       Using oauth 0.5.6
       Using pg 1.2.3
       Using tilt 2.0.10
       Using semantic_range 3.0.0
       Using simple_oauth 0.3.1
       Using temple 0.8.2
       Using turbolinks-source 5.2.0
       Fetching nokogiri 1.11.7 (x86_64-linux)
       Fetching websocket-driver 0.7.4
       Installing aws-partitions 1.465.0
       Installing websocket-driver 0.7.4 with native extensions
       Installing concurrent-ruby 1.1.9
       Using mail 2.7.1
       Using addressable 2.7.0
       Using puma 5.3.2
       Using rack-test 1.1.0
       Using rack-protection 2.1.0
       Fetching rack-proxy 0.7.0
       Installing rack-proxy 0.7.0
       Using aws-sigv4 1.2.3
       Using bootsnap 1.7.5
       Using unf 0.1.4
       Using ffi-compiler 1.0.1
       Using html2slim 0.2.0
       Using sassc 2.4.0
       Using memoizable 0.4.2
       Using slim 4.1.0
       Using turbolinks 5.2.1
       Using omniauth 2.0.4
       Fetching aws-sdk-core 3.114.1
       Installing aws-sdk-core 3.114.1
       Installing nokogiri 1.11.7 (x86_64-linux)
       Using domain_name 0.5.20190701
       Using http-parser 1.2.3
       Using omniauth-oauth 1.2.0
       Using i18n 1.8.10
       Using tzinfo 2.0.4
       Fetching http-cookie 1.0.4
       Installing http-cookie 1.0.4
       Using omniauth-twitter 1.4.0
       Using sprockets 4.0.2
       Using activesupport 6.1.3.2
       Using http 4.4.1
       Using globalid 0.4.2
       Using activemodel 6.1.3.2
       Using jbuilder 2.11.2
       Using twitter 7.0.0
       Using activejob 6.1.3.2
       Using activerecord 6.1.3.2
       Using aws-sdk-dynamodb 1.60.0
       Using aws-sdk-comprehend 1.46.0
       Using aws-sdk-ses 1.38.0
       Fetching aws-sdk-sqs 1.39.0
       Using aws-record 2.6.0
       Using aws-sessionstore-dynamodb 2.0.1
       Installing aws-sdk-sqs 1.39.0
       Using rails-dom-testing 2.0.3
       Fetching loofah 2.10.0
       Installing loofah 2.10.0
       Using rails-html-sanitizer 1.3.0
       Using actionview 6.1.3.2
       Using actionpack 6.1.3.2
       Using actioncable 6.1.3.2
       Using activestorage 6.1.3.2
       Using actionmailer 6.1.3.2
       Using railties 6.1.3.2
       Using sprockets-rails 3.2.2
       Using actionmailbox 6.1.3.2
       Using actiontext 6.1.3.2
       Using aws-sdk-rails 3.6.0
       Using rails 6.1.3.2
       Using sassc-rails 2.1.2
       Using slim-rails 3.2.0
       Using webpacker 5.4.0
       Using sass-rails 6.0.0
       Bundle complete! 26 Gemfile dependencies, 98 gems now installed.
       Gems in the groups 'development' and 'test' were not installed.
       Bundled gems are installed into `./vendor/bundle`
       Removing autoprefixer-rails (10.2.5.0)
       Removing aws-partitions (1.461.0)
       Removing aws-sdk-core (3.114.0)
       Removing aws-sdk-sqs (1.38.0)
       Removing bootstrap (5.0.1)
       Removing concurrent-ruby (1.1.8)
       Removing execjs (2.7.0)
       Removing http-cookie (1.0.3)
       Removing loofah (2.9.1)
       Removing nokogiri-1.11.5-x86_64 (linux)
       Removing popper_js (2.9.2)
       Removing rack-proxy (0.6.5)
       Removing websocket-driver (0.7.3)
       Bundle completed (6.43s)
       Cleaning up the bundler cache.
-----> Installing node-v12.16.2-linux-x64
-----> Installing yarn-v1.22.4
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       yarn install v1.22.4
       [1/4] Resolving packages...
       [2/4] Fetching packages...
       info fsevents@2.3.2: The platform "linux" is incompatible with this module.
       info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.
       info fsevents@1.2.13: The platform "linux" is incompatible with this module.
       info "fsevents@1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
       [3/4] Linking dependencies...
       [4/4] Building fresh packages...
       Done in 23.95s.
       Compiling...
       Compiled all packs in /tmp/build_984cd8ea/public/packs
       Hash: 02de54a646e5a2a4f51a
       Version: webpack 4.46.0
       Time: 28179ms
       Built at: 06/07/2021 6:06:54 PM
                                                                        Asset       Size  Chunks                                Chunk Names
                                                 css/application-4f8f3a07.css    157 KiB    0, 2  [emitted] [immutable]         application
                                              css/application-4f8f3a07.css.br   16.9 KiB          [emitted]                     
                                              css/application-4f8f3a07.css.gz   23.1 KiB          [emitted]                     
                                    css/stylesheets/result/index-e45bff75.css   46 bytes       1  [emitted] [immutable]         stylesheets/result/index
                                       css/stylesheets/top/index-c27721db.css   3.09 KiB       2  [emitted] [immutable]         stylesheets/top/index
                                    css/stylesheets/top/index-c27721db.css.br  487 bytes          [emitted]                     
                                    css/stylesheets/top/index-c27721db.css.gz  621 bytes          [emitted]                     
                                       js/application-c6f59ac9f9e6d84e14d1.js    248 KiB    0, 2  [emitted] [immutable]  [big]  application
                           js/application-c6f59ac9f9e6d84e14d1.js.LICENSE.txt  731 bytes          [emitted]                     
                                    js/application-c6f59ac9f9e6d84e14d1.js.br   63.3 KiB          [emitted]                     
                                    js/application-c6f59ac9f9e6d84e14d1.js.gz   71.9 KiB          [emitted]                     
                                   js/application-c6f59ac9f9e6d84e14d1.js.map   1.01 MiB    0, 2  [emitted] [dev]               application
                                js/application-c6f59ac9f9e6d84e14d1.js.map.br    237 KiB          [emitted]                     
                                js/application-c6f59ac9f9e6d84e14d1.js.map.gz    279 KiB          [emitted]              [big]  
                          js/stylesheets/result/index-63121d6b6ae70e6127c4.js   1.02 KiB       1  [emitted] [immutable]         stylesheets/result/index
                       js/stylesheets/result/index-63121d6b6ae70e6127c4.js.br  487 bytes          [emitted]                     
                       js/stylesheets/result/index-63121d6b6ae70e6127c4.js.gz  533 bytes          [emitted]                     
                      js/stylesheets/result/index-63121d6b6ae70e6127c4.js.map   4.69 KiB       1  [emitted] [dev]               stylesheets/result/index
                   js/stylesheets/result/index-63121d6b6ae70e6127c4.js.map.br   1.59 KiB          [emitted]                     
                   js/stylesheets/result/index-63121d6b6ae70e6127c4.js.map.gz   1.77 KiB          [emitted]                     
                             js/stylesheets/top/index-b24d65eeae16dbeaac8f.js   1.01 KiB       2  [emitted] [immutable]         stylesheets/top/index
                          js/stylesheets/top/index-b24d65eeae16dbeaac8f.js.br  482 bytes          [emitted]                     
                          js/stylesheets/top/index-b24d65eeae16dbeaac8f.js.gz  525 bytes          [emitted]                     
                         js/stylesheets/top/index-b24d65eeae16dbeaac8f.js.map   4.68 KiB       2  [emitted] [dev]               stylesheets/top/index
                      js/stylesheets/top/index-b24d65eeae16dbeaac8f.js.map.br   1.58 KiB          [emitted]                     
                      js/stylesheets/top/index-b24d65eeae16dbeaac8f.js.map.gz   1.77 KiB          [emitted]                     
                                                                manifest.json    2.8 KiB          [emitted]                     
                                                             manifest.json.br  629 bytes          [emitted]                     
                                                             manifest.json.gz  703 bytes          [emitted]                     
        media/images/akadamakinugasatake-04ddd2527167f8c43cba235efe2d15e9.png    233 KiB          [emitted]                     
                media/images/amigasatake-a0045880245ff738c222123689b941d1.png    171 KiB          [emitted]                     
              media/images/benitengutake-5df2558d6c68efd4e0a8b48f25dba3e3.png    201 KiB          [emitted]                     
                   media/images/kaentake-0cdd4fcaf8fed2b3fcd95b8576a415de.png    509 KiB          [emitted]              [big]  
                media/images/kakishimezi-ae4b6d03dfa8273df8a73192bbef195d.png    503 KiB          [emitted]              [big]  
                 media/images/kanzoutake-aa514dfa626e78d2df9892d4fc2b4154.png    233 KiB          [emitted]                     
                     media/images/kinoko-f10be6dee55e1eb819cd1dea3fe26902.png    117 KiB          [emitted]                     
            media/images/kusaurabenitake-7ac1b93afd48b39bb2044690c8f93de8.png    460 KiB          [emitted]              [big]  
         media/images/sasakurehitoyotake-035a9182816ef54713dac9023d609445.png    349 KiB          [emitted]              [big]  
       media/images/shirotamagotengutake-49f131d360d889ef857590b41043c7e4.png    311 KiB          [emitted]              [big]  
                 media/images/tukiyotake-337979c48dbf4355c1e43d0fdb6b1f90.png    146 KiB          [emitted]                     
       Entrypoint application [big] = css/application-4f8f3a07.css js/application-c6f59ac9f9e6d84e14d1.js js/application-c6f59ac9f9e6d84e14d1.js.map
       Entrypoint stylesheets/result/index = css/stylesheets/result/index-e45bff75.css js/stylesheets/result/index-63121d6b6ae70e6127c4.js js/stylesheets/result/index-63121d6b6ae70e6127c4.js.map
       Entrypoint stylesheets/top/index = css/stylesheets/top/index-c27721db.css js/stylesheets/top/index-b24d65eeae16dbeaac8f.js js/stylesheets/top/index-b24d65eeae16dbeaac8f.js.map
        [0] (webpack)/buildin/module.js 552 bytes {0} [built]
        [1] ./app/javascript/packs/stylesheets/top/index.js 39 bytes {0} {2} [built]
        [2] ./app/javascript/stylesheets/top/index.scss 39 bytes {0} {2} [built]
        [4] ./app/javascript/images/akadamakinugasatake.png 115 bytes {0} [optional] [built]
        [5] ./app/javascript/images/amigasatake.png 107 bytes {0} [optional] [built]
        [6] ./app/javascript/images/benitengutake.png 109 bytes {0} [optional] [built]
        [7] ./app/javascript/images/kaentake.png 104 bytes {0} [optional] [built]
       [18] ./app/javascript/packs/application.js 818 bytes {0} [built]
       [19] (webpack)/buildin/global.js 905 bytes {0} [built]
       [20] ./app/javascript/channels/index.js 205 bytes {0} [built]
       [23] ./app/javascript/stylesheets/application.scss 39 bytes {0} [built]
       [24] ./app/javascript/images sync ^\.\/.*$ 640 bytes {0} [built]
       [25] ./app/javascript/packs/stylesheets/result/index.js 42 bytes {1} [built]
       [26] ./app/javascript/stylesheets/result/index.scss 39 bytes {1} [built]
       [27] ./node_modules/bootstrap/dist/js/bootstrap.esm.js + 55 modules 235 KiB {0} [built]
            |    56 modules
           + 20 hidden modules
       
       WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
       This can impact web performance.
       Assets: 
         media/images/kaentake-0cdd4fcaf8fed2b3fcd95b8576a415de.png (509 KiB)
         media/images/kakishimezi-ae4b6d03dfa8273df8a73192bbef195d.png (503 KiB)
         media/images/kusaurabenitake-7ac1b93afd48b39bb2044690c8f93de8.png (460 KiB)
         media/images/sasakurehitoyotake-035a9182816ef54713dac9023d609445.png (349 KiB)
         media/images/shirotamagotengutake-49f131d360d889ef857590b41043c7e4.png (311 KiB)
         js/application-c6f59ac9f9e6d84e14d1.js (248 KiB)
         js/application-c6f59ac9f9e6d84e14d1.js.map.gz (279 KiB)
       
       WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
       Entrypoints:
         application (405 KiB)
             css/application-4f8f3a07.css
             js/application-c6f59ac9f9e6d84e14d1.js
       
       
       WARNING in webpack performance recommendations: 
       You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
       For more info visit https://webpack.js.org/guides/code-splitting/
       Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!app/javascript/stylesheets/application.scss:
           Entrypoint mini-css-extract-plugin = *
           [0] ./node_modules/css-loader/dist/cjs.js??ref--6-1!./node_modules/postcss-loader/src??ref--6-2!./node_modules/sass-loader/dist/cjs.js??ref--6-3!./app/javascript/stylesheets/application.scss 2 KiB {0} [built]
               + 1 hidden module
       Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!app/javascript/stylesheets/result/index.scss:
           Entrypoint mini-css-extract-plugin = *
           [0] ./node_modules/css-loader/dist/cjs.js??ref--6-1!./node_modules/postcss-loader/src??ref--6-2!./node_modules/sass-loader/dist/cjs.js??ref--6-3!./app/javascript/stylesheets/result/index.scss 744 bytes {0} [built]
               + 1 hidden module
       Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!app/javascript/stylesheets/top/index.scss:
           Entrypoint mini-css-extract-plugin = *
           [0] ./node_modules/css-loader/dist/cjs.js??ref--6-1!./node_modules/postcss-loader/src??ref--6-2!./node_modules/sass-loader/dist/cjs.js??ref--6-3!./app/javascript/stylesheets/top/index.scss 6.88 KiB {0} [built]
           [3] ./app/javascript/images/kinoko.png 102 bytes {0} [built]
               + 2 hidden modules
       Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!node_modules/bootstrap/scss/bootstrap.scss:
           Entrypoint mini-css-extract-plugin = *
              2 modules
       
       Asset precompilation completed (57.38s)
       Cleaning assets
       Running: rake assets:clean
-----> Detecting rails configuration
###### WARNING:
       Removing `vendor/bundle`.
       Checking in `vendor/bundle` is not supported. Please remove this directory
       and add it to your .gitignore. To vendor your gems with Bundler, use
       `bundle pack` instead.
###### WARNING:
       No Procfile detected, using the default web server.
       We recommend explicitly declaring how to boot your server process via a Procfile.
       https://devcenter.heroku.com/articles/ruby-default-web-server
-----> Discovering process types
       Procfile declares types     -> (none)
       Default types for buildpack -> console, rake, web
-----> Compressing...
       Done: 96.8M
-----> Launching...
       Released v19
       https://app.herokuapp.com/ deployed to Heroku

assetsとwebpackerで干渉している?とのことで、今回参考文献で記載されているgemに該当していたbootstrapを削除。
yarnでbootstrapを入れていたことを忘れていた。

2回目

-----> Building on the Heroku-20 stack
-----> Using buildpack: heroku/ruby
-----> Ruby app detected
-----> Installing bundler 2.2.16
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-3.0.1
-----> Installing dependencies using bundler 2.2.16
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform
       is x86_64-linux. Add the current platform to the lockfile with `bundle lock
       --add-platform x86_64-linux` and try again.
       Bundler Output: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform
       is x86_64-linux. Add the current platform to the lockfile with `bundle lock
       --add-platform x86_64-linux` and try again.
 !
 !     Failed to install gems via Bundler.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed
$ bundle lock --add-platform x86_64-linux

指示に従ってを実行。
Bundler 2.2.x以降は適切なプラットフォームを追加する必要がある、とのこと。
bundle -vで確認したらBundler version 2.2.19だった。

参考文献

Ruby on Rails - assets:precompile RAILS_ENV=productionを実行するとWARNING in asset size limitという警告が表示される|teratail

【Rails】Bundler 2.2.x以降は開発者が適切なプラットフォームを追加する必要がある - AUTOVICE

< Ruby エラー編 > rbenv globalでversion変更ができなくなった

エラー内容

rbenv globalでversion変更ができなかった。

$ rbenv versions                                                                                                            
  system
  2.3.1
  2.6.3
  2.6.4
  2.6.5
* 2.6.6 (set by /Users/user_name/.ruby-version)
  3.0.1
$ rbenv global 3.0.1                                                                                                  
$ rbenv versions                                                                                                            
  system
  2.3.1
  2.6.3
  2.6.4
  2.6.5
* 2.6.6 (set by /Users/user_name/.ruby-version)
  3.0.1

対処法

ホームディレクトリで$rbenv local [version]をしてしまったことが原因。 versionの読み取り先がrbenv localを実行してしまったため、カレントディレクトリに.ruby-versionというファイルが作成されてしまい、globalの設定がオーバーライドされてしまったため発生したと考えられる。 $ rbenv local --unsetを実行すると、無事にrbenv globalでバージョン変更ができた。

$ rbenv local --unset
$ rbenv version                                                                                                             
3.0.1 (set by /Users/user_name/.rbenv/version) # setされる場所が変わった
$ ruby -v                                                                                                                   
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin20]

参考

rbenvのよく使うコマンドまとめ - TASK NOTES

rbenv | global と local と .ruby-version の微妙な関係 - Qiita

GitHub - rbenv/rbenv: Groom your app’s Ruby environment

<Ruby on Rails エラー編> herokuでデプロイするときに発生したエラー

1回目

-----> Building on the Heroku-20 stack
-----> Determining which buildpack to use for this app
 !     Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
            Detected buildpacks: Ruby,Node.js
            See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
-----> Ruby app detected
-----> Installing bundler 2.2.16
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.6.6
-----> Installing dependencies using bundler 2.2.16
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       Your Gemfile lists the gem aws-sdk-rails (>= 0) more than once.
       You should probably keep only one of them.
       Remove any duplicate entries and specify the gem only once.
       While it's not a problem now, it could cause errors if you change the version of one of them later.
       Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform
       is x86_64-linux. Add the current platform to the lockfile with `bundle lock
       --add-platform x86_64-linux` and try again.
       Bundler Output: Your Gemfile lists the gem aws-sdk-rails (>= 0) more than once.
       You should probably keep only one of them.
       Remove any duplicate entries and specify the gem only once.
       While it's not a problem now, it could cause errors if you change the version of one of them later.
       Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform
       is x86_64-linux. Add the current platform to the lockfile with `bundle lock
       --add-platform x86_64-linux` and try again.
 !
 !     Failed to install gems via Bundler.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed

Your Gemfile lists the gem aws-sdk-rails (>= 0) more than once.

から、gemfileで重複していたaws-sdk-railsを削除

ここで、herokuでサポートされている最新のバージョンのruby3.0.1になっていなかったことに気づいて変更して、念の為もう一度heroku push

https://devcenter.heroku.com/articles/ruby-support#ruby-versions

2回目

-----> Building on the Heroku-20 stack
-----> Determining which buildpack to use for this app
 !     Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
            Detected buildpacks: Ruby,Node.js
            See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
-----> Ruby app detected
-----> Installing bundler 2.2.16
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-3.0.1
-----> Installing dependencies using bundler 2.2.16
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       Fetching gem metadata from https://rubygems.org/..........
       Fetching rake 13.0.3
〜省略〜
   
       Installing bootstrap 5.0.1
       Bundle complete! 27 Gemfile dependencies, 102 gems now installed.
       Gems in the groups 'development' and 'test' were not installed.
       Bundled gems are installed into `./vendor/bundle`
       Bundle completed (163.23s)
       Cleaning up the bundler cache.
-----> Installing node-v12.16.2-linux-x64
-----> Installing yarn-v1.22.4
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       yarn install v1.22.4
       [1/4] Resolving packages...
       [2/4] Fetching packages...
       info fsevents@2.3.2: The platform "linux" is incompatible with this module.
       info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.
       info fsevents@1.2.13: The platform "linux" is incompatible with this module.
       info "fsevents@1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
       [3/4] Linking dependencies...
       warning " > bootstrap@5.0.1" has unmet peer dependency "@popperjs/core@^2.9.2".
       [4/4] Building fresh packages...
       Done in 25.96s.
       I, [2021-06-02T13:39:00.278337 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js
       I, [2021-06-02T13:39:00.278779 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js.gz
       I, [2021-06-02T13:39:00.279173 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/akadamakinugasatake-71fb3883dd6034b8c25182024af2570fcee1b197d41f46cfefc1c27cf6a8a291.png
       I, [2021-06-02T13:39:00.280564 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/amigasatake-35f500506e096388078ca5e01fd8a5c77d9b6c2dfde2252ead103b0e1d693882.png
       I, [2021-06-02T13:39:00.281103 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/benitengutake-5ea4ad04569b1041a0795c6d7492cff6bd59da8e23fef0733a2ccc4408802062.png
       I, [2021-06-02T13:39:00.281563 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/kaentake-657e92355edef4df6ff742bf63253b1d75c1b307bce7f9aeb8cbb486e3c97c92.png
       I, [2021-06-02T13:39:00.282130 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/kakishimezi-50878dfc4a10eb4b7060f63145e3ac79f24895829c0aefeb2909b31fec312a7c.png
       I, [2021-06-02T13:39:00.282721 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/kanzoutake-1a95e01d3d1565f363cb6067bb9988997d887d538b21cf1f48082dc0bbcbd3f8.png
       I, [2021-06-02T13:39:00.283140 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/kinoko-e06a2b4e2ae765e65a693926cbe0b822e20d9d4b4e78028250873f4639631191.png
       I, [2021-06-02T13:39:00.283706 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/kusaurabenitake-229be4a8d30c315b6931a6e28f6c39eea81214eda66a5e4f2e544ff686122e8b.png
       I, [2021-06-02T13:39:00.284441 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/sasakurehitoyotake-38fa61cfb566349ebf4948bbe31721c37326aa5531d2e82b783387c73c200eaa.png
       I, [2021-06-02T13:39:00.285108 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/shirotamagotengutake-cc81a8733a62bdd9b030b96a600fb5b4a455d966571d01007ec076358c036c28.png
       I, [2021-06-02T13:39:00.285841 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/tukiyotake-b8a617bf1aeb2ada4fe0d0637580c20f58951030e6bf2945794c5a0d10815c4b.png
       I, [2021-06-02T13:39:00.286249 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/application-46fde15497d4d5e232ff92d0eb558d7b04222e2d34c1e808f5c4a001108f768b.css
       I, [2021-06-02T13:39:00.286501 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/application-46fde15497d4d5e232ff92d0eb558d7b04222e2d34c1e808f5c4a001108f768b.css.gz
       I, [2021-06-02T13:39:00.286778 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/balloon-b98683eaa7c4aa99affca3e3353efd18a77b961b6a87e2f361cd3dd1dac24171.css
       I, [2021-06-02T13:39:00.286961 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/balloon-b98683eaa7c4aa99affca3e3353efd18a77b961b6a87e2f361cd3dd1dac24171.css.gz
       I, [2021-06-02T13:39:00.287262 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/results-a660d06b2b728f702540e3cac59b1eb4633b469c977cf8041bed8a4c9a86d20e.css
       I, [2021-06-02T13:39:00.287834 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/results-a660d06b2b728f702540e3cac59b1eb4633b469c977cf8041bed8a4c9a86d20e.css.gz
       I, [2021-06-02T13:39:00.288123 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/top-3ae5747852a558743cc03d6130525f9e639e7583fc17957dabcb9d68afbf367d.css
       I, [2021-06-02T13:39:00.288361 #1481]  INFO -- : Writing /tmp/build_0e8c3275/public/assets/top-3ae5747852a558743cc03d6130525f9e639e7583fc17957dabcb9d68afbf367d.css.gz
       Compiling...
       Compilation failed:
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
       The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
        ["@babel/plugin-proposal-private-methods", { "loose": true }]
       to the "plugins" section of your Babel config.
       ModuleNotFoundError: Module not found: Error: Can't resolve '@popperjs/core' in '/tmp/build_0e8c3275/node_modules/bootstrap/dist/js'
           at /tmp/build_0e8c3275/node_modules/webpack/lib/Compilation.js:925:10
           at /tmp/build_0e8c3275/node_modules/webpack/lib/NormalModuleFactory.js:401:22
           at /tmp/build_0e8c3275/node_modules/webpack/lib/NormalModuleFactory.js:130:21
           at /tmp/build_0e8c3275/node_modules/webpack/lib/NormalModuleFactory.js:224:22
           at /tmp/build_0e8c3275/node_modules/neo-async/async.js:2830:7
           at /tmp/build_0e8c3275/node_modules/neo-async/async.js:6877:13
           at /tmp/build_0e8c3275/node_modules/webpack/lib/NormalModuleFactory.js:214:25
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:213:14
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:25:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:41:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/ModuleKindPlugin.js:30:40
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:14:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/forEachBail.js:30:14
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:25:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:14:1)
           at /tmp/build_0e8c3275/node_modules/enhanced-resolve/lib/RootPlugin.js:37:38
           at _next42 (eval at create (/tmp/build_0e8c3275/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
       resolve '@popperjs/core' in '/tmp/build_0e8c3275/node_modules/bootstrap/dist/js'
         Parsed request is a module
         using description file: /tmp/build_0e8c3275/node_modules/bootstrap/package.json (relative path: ./dist/js)
           Field 'browser' doesn't contain a valid alias configuration
           resolve as module
             looking for modules in /tmp/build_0e8c3275/app/javascript
               using description file: /tmp/build_0e8c3275/package.json (relative path: ./app/javascript)
                 Field 'browser' doesn't contain a valid alias configuration
                 using description file: /tmp/build_0e8c3275/package.json (relative path: ./app/javascript/@popperjs/core)
                   no extension
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core doesn't exist
                   .mjs
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.mjs doesn't exist
                   .js
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.js doesn't exist
                   .sass
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.sass doesn't exist
                   .scss
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.scss doesn't exist
                   .css
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.css doesn't exist
                   .module.sass
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.module.sass doesn't exist
                   .module.scss
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.module.scss doesn't exist
                   .module.css
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.module.css doesn't exist
                   .png
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.png doesn't exist
                   .svg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.svg doesn't exist
                   .gif
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.gif doesn't exist
                   .jpeg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.jpeg doesn't exist
                   .jpg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core.jpg doesn't exist
                   as directory
                     /tmp/build_0e8c3275/app/javascript/@popperjs/core doesn't exist
             /tmp/build_0e8c3275/node_modules/bootstrap/dist/js/node_modules doesn't exist or is not a directory
             /tmp/build_0e8c3275/node_modules/bootstrap/dist/node_modules doesn't exist or is not a directory
             /tmp/build_0e8c3275/node_modules/bootstrap/node_modules doesn't exist or is not a directory
             /tmp/build_0e8c3275/node_modules/node_modules doesn't exist or is not a directory
             /tmp/node_modules doesn't exist or is not a directory
             /node_modules doesn't exist or is not a directory
             looking for modules in /tmp/build_0e8c3275/node_modules
               using description file: /tmp/build_0e8c3275/package.json (relative path: ./node_modules)
                 Field 'browser' doesn't contain a valid alias configuration
                 using description file: /tmp/build_0e8c3275/package.json (relative path: ./node_modules/@popperjs/core)
                   no extension
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core doesn't exist
                   .mjs
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.mjs doesn't exist
                   .js
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.js doesn't exist
                   .sass
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.sass doesn't exist
                   .scss
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.scss doesn't exist
                   .css
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.css doesn't exist
                   .module.sass
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.module.sass doesn't exist
                   .module.scss
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.module.scss doesn't exist
                   .module.css
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.module.css doesn't exist
                   .png
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.png doesn't exist
                   .svg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.svg doesn't exist
                   .gif
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.gif doesn't exist
                   .jpeg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.jpeg doesn't exist
                   .jpg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_0e8c3275/node_modules/@popperjs/core.jpg doesn't exist
                   as directory
                     /tmp/build_0e8c3275/node_modules/@popperjs/core doesn't exist
       
 !
 !     Precompiling assets failed.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed
Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): 
you can silence this warning by explicitly adding ["@babel/plugin-proposal-private-methods”,  { "loose": true }] to the "plugins" section of your Babel config.

babel/preset-env設定で "loose"オプションが "false"に設定されていますが、@babel/plugin-proposal-class-properties の "loose" モードオプションが "true" に設定されているため、@babel/plugin-proposal-private-methodsでは使用されません。
babel/plugin-proposal-class-properties、@babel/plugin-proposal-private-methods、および @babel/plugin-proposal-property-in-object(これらが有効な場合)では、"loose"オプションは同じでなければなりません。
Babel/plugin-proposal-private-methods", { "loose": true }] を、あなたの Babel コンフィグの "plugins" セクションに明示的に追加することで、この警告を黙らせることができます。

ということなので、

https://github.com/nuxt/nuxt.js/issues/9224

を参考に、pluginsのところへ明示的に記入。

babel.config.js

...
plugins: [
    ["@babel/plugin-proposal-private-methods", { loose: true }],
...

またgit push heroku 作業ブランチ:mainすると、エラーが変わった。

3回目

-----> Building on the Heroku-20 stack
-----> Determining which buildpack to use for this app
 !     Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
            Detected buildpacks: Ruby,Node.js
            See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
-----> Ruby app detected
-----> Installing bundler 2.2.16
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-3.0.1
-----> Installing dependencies using bundler 2.2.16
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       Fetching gem metadata from https://rubygems.org/..........
       Fetching rake 13.0.3

〜省略〜

       Installing bootstrap 5.0.1
       Bundle complete! 27 Gemfile dependencies, 102 gems now installed.
       Gems in the groups 'development' and 'test' were not installed.
       Bundled gems are installed into `./vendor/bundle`
       Bundle completed (162.35s)
       Cleaning up the bundler cache.
-----> Installing node-v12.16.2-linux-x64
-----> Installing yarn-v1.22.4
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       yarn install v1.22.4
       [1/4] Resolving packages...
       [2/4] Fetching packages...
       info fsevents@2.3.2: The platform "linux" is incompatible with this module.
       info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.
       info fsevents@1.2.13: The platform "linux" is incompatible with this module.
       info "fsevents@1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
       [3/4] Linking dependencies...
       warning " > bootstrap@5.0.1" has unmet peer dependency "@popperjs/core@^2.9.2".
       [4/4] Building fresh packages...
       Done in 23.51s.
       I, [2021-06-02T14:26:05.711596 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js
       I, [2021-06-02T14:26:05.711998 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js.gz
       I, [2021-06-02T14:26:05.712283 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/akadamakinugasatake-71fb3883dd6034b8c25182024af2570fcee1b197d41f46cfefc1c27cf6a8a291.png
       I, [2021-06-02T14:26:05.713852 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/amigasatake-35f500506e096388078ca5e01fd8a5c77d9b6c2dfde2252ead103b0e1d693882.png
       I, [2021-06-02T14:26:05.714328 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/benitengutake-5ea4ad04569b1041a0795c6d7492cff6bd59da8e23fef0733a2ccc4408802062.png
       I, [2021-06-02T14:26:05.714800 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/kaentake-657e92355edef4df6ff742bf63253b1d75c1b307bce7f9aeb8cbb486e3c97c92.png
       I, [2021-06-02T14:26:05.715509 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/kakishimezi-50878dfc4a10eb4b7060f63145e3ac79f24895829c0aefeb2909b31fec312a7c.png
       I, [2021-06-02T14:26:05.718116 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/kanzoutake-1a95e01d3d1565f363cb6067bb9988997d887d538b21cf1f48082dc0bbcbd3f8.png
       I, [2021-06-02T14:26:05.719638 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/kinoko-e06a2b4e2ae765e65a693926cbe0b822e20d9d4b4e78028250873f4639631191.png
       I, [2021-06-02T14:26:05.721303 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/kusaurabenitake-229be4a8d30c315b6931a6e28f6c39eea81214eda66a5e4f2e544ff686122e8b.png
       I, [2021-06-02T14:26:05.722192 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/sasakurehitoyotake-38fa61cfb566349ebf4948bbe31721c37326aa5531d2e82b783387c73c200eaa.png
       I, [2021-06-02T14:26:05.723958 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/shirotamagotengutake-cc81a8733a62bdd9b030b96a600fb5b4a455d966571d01007ec076358c036c28.png
       I, [2021-06-02T14:26:05.724964 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/tukiyotake-b8a617bf1aeb2ada4fe0d0637580c20f58951030e6bf2945794c5a0d10815c4b.png
       I, [2021-06-02T14:26:05.725653 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/application-46fde15497d4d5e232ff92d0eb558d7b04222e2d34c1e808f5c4a001108f768b.css
       I, [2021-06-02T14:26:05.726128 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/application-46fde15497d4d5e232ff92d0eb558d7b04222e2d34c1e808f5c4a001108f768b.css.gz
       I, [2021-06-02T14:26:05.727558 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/balloon-b98683eaa7c4aa99affca3e3353efd18a77b961b6a87e2f361cd3dd1dac24171.css
       I, [2021-06-02T14:26:05.729402 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/balloon-b98683eaa7c4aa99affca3e3353efd18a77b961b6a87e2f361cd3dd1dac24171.css.gz
       I, [2021-06-02T14:26:05.730227 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/results-a660d06b2b728f702540e3cac59b1eb4633b469c977cf8041bed8a4c9a86d20e.css
       I, [2021-06-02T14:26:05.730953 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/results-a660d06b2b728f702540e3cac59b1eb4633b469c977cf8041bed8a4c9a86d20e.css.gz
       I, [2021-06-02T14:26:05.731212 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/top-3ae5747852a558743cc03d6130525f9e639e7583fc17957dabcb9d68afbf367d.css
       I, [2021-06-02T14:26:05.731401 #1484]  INFO -- : Writing /tmp/build_68105761/public/assets/top-3ae5747852a558743cc03d6130525f9e639e7583fc17957dabcb9d68afbf367d.css.gz
       Compiling...
       Compilation failed:
       ModuleNotFoundError: Module not found: Error: Can't resolve '@popperjs/core' in '/tmp/build_68105761/node_modules/bootstrap/dist/js'
           at /tmp/build_68105761/node_modules/webpack/lib/Compilation.js:925:10
           at /tmp/build_68105761/node_modules/webpack/lib/NormalModuleFactory.js:401:22
           at /tmp/build_68105761/node_modules/webpack/lib/NormalModuleFactory.js:130:21
           at /tmp/build_68105761/node_modules/webpack/lib/NormalModuleFactory.js:224:22
           at /tmp/build_68105761/node_modules/neo-async/async.js:2830:7
           at /tmp/build_68105761/node_modules/neo-async/async.js:6877:13
           at /tmp/build_68105761/node_modules/webpack/lib/NormalModuleFactory.js:214:25
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:213:14
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:25:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:41:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/ModuleKindPlugin.js:30:40
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:14:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/forEachBail.js:30:14
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:25:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/Resolver.js:285:5
           at eval (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:14:1)
           at /tmp/build_68105761/node_modules/enhanced-resolve/lib/RootPlugin.js:37:38
           at _next42 (eval at create (/tmp/build_68105761/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
       resolve '@popperjs/core' in '/tmp/build_68105761/node_modules/bootstrap/dist/js'
         Parsed request is a module
         using description file: /tmp/build_68105761/node_modules/bootstrap/package.json (relative path: ./dist/js)
           Field 'browser' doesn't contain a valid alias configuration
           resolve as module
             looking for modules in /tmp/build_68105761/app/javascript
               using description file: /tmp/build_68105761/package.json (relative path: ./app/javascript)
                 Field 'browser' doesn't contain a valid alias configuration
                 using description file: /tmp/build_68105761/package.json (relative path: ./app/javascript/@popperjs/core)
                   no extension
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core doesn't exist
                   .mjs
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.mjs doesn't exist
                   .js
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.js doesn't exist
                   .sass
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.sass doesn't exist
                   .scss
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.scss doesn't exist
                   .css
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.css doesn't exist
                   .module.sass
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.module.sass doesn't exist
                   .module.scss
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.module.scss doesn't exist
                   .module.css
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.module.css doesn't exist
                   .png
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.png doesn't exist
                   .svg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.svg doesn't exist
                   .gif
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.gif doesn't exist
                   .jpeg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.jpeg doesn't exist
                   .jpg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/app/javascript/@popperjs/core.jpg doesn't exist
                   as directory
                     /tmp/build_68105761/app/javascript/@popperjs/core doesn't exist
             /tmp/build_68105761/node_modules/bootstrap/dist/js/node_modules doesn't exist or is not a directory
             /tmp/build_68105761/node_modules/bootstrap/dist/node_modules doesn't exist or is not a directory
             /tmp/build_68105761/node_modules/bootstrap/node_modules doesn't exist or is not a directory
             /tmp/build_68105761/node_modules/node_modules doesn't exist or is not a directory
             /tmp/node_modules doesn't exist or is not a directory
             /node_modules doesn't exist or is not a directory
             looking for modules in /tmp/build_68105761/node_modules
               using description file: /tmp/build_68105761/package.json (relative path: ./node_modules)
                 Field 'browser' doesn't contain a valid alias configuration
                 using description file: /tmp/build_68105761/package.json (relative path: ./node_modules/@popperjs/core)
                   no extension
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core doesn't exist
                   .mjs
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.mjs doesn't exist
                   .js
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.js doesn't exist
                   .sass
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.sass doesn't exist
                   .scss
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.scss doesn't exist
                   .css
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.css doesn't exist
                   .module.sass
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.module.sass doesn't exist
                   .module.scss
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.module.scss doesn't exist
                   .module.css
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.module.css doesn't exist
                   .png
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.png doesn't exist
                   .svg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.svg doesn't exist
                   .gif
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.gif doesn't exist
                   .jpeg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.jpeg doesn't exist
                   .jpg
                     Field 'browser' doesn't contain a valid alias configuration
                     /tmp/build_68105761/node_modules/@popperjs/core.jpg doesn't exist
                   as directory
                     /tmp/build_68105761/node_modules/@popperjs/core doesn't exist
       
 !
 !     Precompiling assets failed.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed

warning " > bootstrap@5.0.1" has unmet peer dependency "@popperjs/core@^2.9.2".

ModuleNotFoundError: Module not found: Error: Can't resolve '@popperjs/core' in '/tmp/build_68105761/node_modules/bootstrap/dist/js'

から、bootstrap5に依存するpopperjsはpopperjs/coreであるということなので、yarn add @poppserjs/coreした。

成功!

< Ruby > 最新のバージョンを入れる

現在rbenv内にインストールされているバージョンを確認

$ rbenv versions

homebrewのrbenvをアップグレードする。

$ brew upgrade rbenv-build

アップグレードしたrbenvからインストールできるバージョンを確認

$ rbenv install -l

2021.6.2現在のrubyの安定版は3.0.1なので、今回はそれをインストール

$ rbenv install 3.0.1

パソコン全体で切り替え

$ rbenv global 3.0.1

アプリ内で切り替え

$ rbenv local 3.0.1

参考

www.ruby-lang.org

< git > git logを見やすくする設定

$ git log --graph --all --format="%x09%C(green)%an%Creset%x09%C(yellow)%h%Creset %C(red bold)%d%Creset %s"

を実行すると、以下のようになる。 Image from Gyazo (左側はuser_name)


エイリアス登録すれば、手軽に確認できる。

参考

git log を見やすくする - Qiita