Railsでlazy high chartsを使っていて、最近アップデートしようとしたら、エラーが出るようになって更新できなかったので、そのときに調べたことをまとめています。
気の早いお方へ
7/29以前からlazy_high_chartsを使っていて、アップデートしたら couldn't find file 'highcharts/highcharts' ...
というエラーが出てあれー?ってなっている方はrake highcharts:update
をしてみてください。 vendor/assets/javascripts/highcharts
以下に最新のhighchartsがダウンロードされて使えるようになります。
詳細
CIでエラー
dependabotが更新のプルリクを作ってくれていたんですが、CIでエラーが出ていました。
couldn't find file 'highcharts/highcharts'
と、highcharts
Failure/Error: //= require highcharts/highcharts
ActionView::Template::Error:
couldn't find file 'highcharts/highcharts' with type 'application/javascript'
Checked in these paths:
/home/circleci/repo/app/assets/config
/home/circleci/repo/app/assets/images
/home/circleci/repo/app/assets/javascripts
/home/circleci/repo/app/assets/stylesheets
:
:
調査
地道に前回インストールしたバージョンのコミットからの差分を見ました。
大変そうですが、実は5個しかみてません。
普段から最新のgemを使うようにしていて、ホントよかったです!
それで見つけたのがこのコミットです。
内容は「gemにjsのソースをバンドルすると、本家がアップデートするたびにgemのバージョンもあげなきゃいけなくて大変だと思うので、別途利用者が個別にインストールする形をとったらどうでしょう?」というもので、最新のhighchartsを取得するrakeタスクの追加と、gem内部のjsの削除がされていました。
その後、よくよく見るとREADME.mdのインストール手順にrakeタスクの実行が追加されていました。
highchartsのインストールで解決
追加されたインストール手順のrake highcharts:update
を実行すると、無事にhighchartsをインストールできました。場所はvendor/assets/javascripts/highcharts
です。
利用しているページでグラフが表示されていることを確認して、問題ないことがわかりました。
リポジトリに登録して、解決しました。
懸念事項
今までlazy_high_chartsのアップデートでhighchartsの更新が行われていたわけですが…これが自分たちでやらなくてはならなくなってしまいました…。
どうやって忘れないようにしよう…。
おわりに
sprocketsからwebpackerに移行したいです…!
そしたらアップデート作業をdependabotに頼めるので。
あとは…README.mdのblame見ればよかった。
ちゃんとREADME.mdも更新されていたので、コミットログでなくて、こちらを見たらもっと楽だったと思いました…。