Edited at

bootsnapのせいでRails5.2とかが動かない人へ


bootsnapとは?

bootsnapについてはトレタの中の人がアウトプットしてくれているのでそちらを参照しましょう。

bootsnap自体は

1. Gemfile に gem 'bootsnap', require: false を追記

2. 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-cachebootsnap-compile-cache を消す(rmコマンドでok)

これで、動かなかったRailsアプリにアクセスしてみましょう。

参考:

'require': cannot load such file -- bootsnap/setup (LoadError) · Issue #73 · Shopify/bootsnap

余談:

他の人に例がなく自分だけってパターンだったから、気づきづらい。時間食う。