環境
- ruby 2.6.1
- rails 5.2.2 -> 5.2.6
railsアップデート手順
- Gemfileのrailsの箇所を
gem 'rails', '5.2.6'
に書き換え -
bundle update --conservative rails
を実行 - エラーが出たら都度そのgemをrailsの後に追加していく
-
rails app:update
を実行 - 更新内容を確認しながら適用していく
発生したエラー
rails s
でページを確認すると下記エラーが発生
fest file in `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError)
But did not, please create this file and use it to link any assets that need
to be rendered by your app:
Example:
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css
and restart your server
For more information see: https://github.com/rails/sprockets/blob/070fc01947c111d35bb4c836e9bb71962a8e0595/UPGRADING.md#manifestjs
言われるがままmanifest.jsを追加するが下記エラーが発生
cannot load such file -- sassc
sasscのgem追加やmanifest.js周りの設定を書き換えるも解消できず
(railsの中にengineも使っていて、そちらのsasscのコンパイルがうまく行っていないような挙動だった)
修正方法
sprocketsの変更履歴を調べると4系から必要な対応だったため、バージョンを3系に固定しました(根本解決ではないので情報求む)
- Gemfileに
gem 'sprockets', <~ '3.7.2'
を追加 -
bunfle update --conservative sprockets
を実行