Rails 5.2からBootsnapというgemがデフォルトで使われるようになった。
これはアプリの起動時間を削減してくれるものだが、tmp/cache/以下にたくさんの小さなファイル(2000個とか)を作成するので、例えばDropboxを使ってプロジェクトディレクトリを同期させていると鬱陶しいことがある。
そんな時は、config/boot.rbを以下のようにすることでキャッシュファイルの出力先を変えられる。
config/boot.rb
#require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
require 'bootsnap'
app_name = File.basename(File.expand_path("#{__dir__}/../"))
Bootsnap.setup(cache_dir: "/tmp/bootsnap/#{app_name}")
ここでは、Railsアプリがあるディレクトリ名をapp_name
として、/tmp/bootsnap/<app_name>
にキャッシュファイルを作るようにしてみた。例えば/Users/yhara/proj/myapp1にRailsアプリがあるとしたら、/tmp/bootsnap/myapp1がキャッシュファイルのディレクトリになる。