rails assets:precompile 時に yarn install が実行されない

Rails5をHerokuにデプロイしようとした際、rails assets:precompile 時に yarn install が実行されず、node_module ディレクトリをassetsから読み込むことができずにビルドエラーになってしまった。

そもそも assets:precompile 時に yarn install が実行される条件ってなんだろうと思って探してみると、bin/yarn ファイルがあることが条件のようだった。

https://github.com/rails/rails/blob/f99b3c5f9759baffec5c1f7abf74e108e2fb1c77/railties/lib/rails/tasks/yarn.rake#L11

bin/yarn ファイルを作成すると無事に yarn install が実行されてデプロイできた。

Rubyの system メソッドは、デフォルトでは実行ファイルがない場合は何も出力せずに nil を返すだけのよう。

https://docs.ruby-lang.org/ja/latest/method/Kernel/m/system.html

irb(main):005:0> system("hogehoge")
=> nil