bootsnapとは?
bootsnapについてはトレタの中の人がアウトプットしてくれているのでそちらを参照しましょう。
bootsnap自体は
- Gemfile に
gem 'bootsnap', require: false
を追記 - config/boot.rb に
require 'bootsnap/setup'
を追記
のお手軽簡単ステップ2つです。
bootsnapのせいで何やらRailsが動かない
こんなログ。
LoadError: cannot load such file -- arel
/Users/hogehoge/***/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
...
当たり前ですが、arelが見つからないなんてことはないんです。
上記のbootsnapの簡単2ステップをコメントアウトすれば動いてしまうRailsアプリを持っている人向けです。
チェックポイント
- bootsnapをbundleするとrails sやrails cが動かない
- 明らかにkernelで呼び出そうとしてる部分でコケる
- bootsnapをコメントアウトすると綺麗に動作する
- rubyのインストとかし直しても動かない(んでやっぱりbootsnapをコメントアウトすると動く)
bootsnapのCacheを消そう
ここまで条件が一致している方は多分僕と同じなので以下をやってみましょう。
bootsnapはCacheファイルを作るんでこれを消します。
- 自分のRailsプロジェクトディレクトリの tmp/cache へ行く
-
bootsnap-load-path-cache
とbootsnap-compile-cache
を消す(rmコマンドでok)
これで、動かなかったRailsアプリにアクセスしてみましょう。
参考:
'require': cannot load such file -- bootsnap/setup (LoadError) · Issue #73 · Shopify/bootsnap
余談:
他の人に例がなく自分だけってパターンだったから、気づきづらい。時間食う。