きっかけ
Railsで開発してるのだが、最近デプロイが非常に遅くなってきた。 RailsのデプロイはCapistrano::Railsを使用しているが、ログをみるとrails assets:precompile
に非常に時間がかかっていた。
なんとその時間 >約6分<
流石に1デプロイ6分はやってられないということで解決策を探すことに
解決策
rails assets:precompile
はRubyだから遅い。C#で実装されたSassCを使おう。
インストール
Macの場合はbrew install sassc
するだけ。Linuxの場合は以下を参考にSassCをインストールする。
Ubuntu/CentOSでSassCをインストールする - 動かざることバグの如し
設定
Railsのアセットプリコンパイル周辺の設計はすごく良くできていて、Gemfileの
gem 'sass-rails', '~> 5.0'
をコメントアウトして
gem "sassc-rails"
を追加するだけ。あとはbundle install
結果
今まで6分かかっていたrails assets:precompile
が1分で終わった。なんというビフォア・アフター
言いたいこと
- SassCマジ速い
- 無理にwebpackに乗り換えなくても改善はできる