Rails
Node.js

AdminLTE v2.4.0 について

More than 1 year has passed since last update.

結論

Railsでassets:precompileが

$ bundle exec rake assets:precompile
Sprockets::FileNotFound: couldn't find file 'admin-lte/dist/js/app.js' with type 'application/javascript'

ってなる場合は、 package.json"admin-lte" のバージョンを v2.3.x に固定("~2.3")しましょう。

経緯

とあるRailsアプリケーションを保守しているんですが、ある日自動デプロイに失敗している事に気がつきました。

  • GitHub -> Travis -> AWS Elastic Beanstalk -> EC2

/var/log/eb-activity.log に assets:precompile で失敗しているって出力されているの見つける。
ログからAdminLTEに目星をつける。
GitHubを覗いてみると3日前にv2.4.0がリリースされてることに気づく。
雑にAdminLTEのバージョンを古いバージョンに固定してみるとデプロイできる。
おそらく、v2.4.0では破壊的な変更が含まれている or デグレと判断して、v2.3.x系だけを使うようにpackage.jsonを修正する。

とこんな感じで1日を潰してしまいました。 :innocent:

補足

マイナーバージョンのアップデートで後方互換性を損なうとはちょっと思えないですし、
READMEとissueを読んだ感じでは仕様とか既知の問題ではなさそうなので、
プルリクのチャンスかなと思っています。 :muscle:
しかしHTMLとかJavaScriptとかさっぱりわかりません。:innocent:

追記

DEPRECATED ってはっきりと書いてありますね。:innocent:

v2.4.0以降は、 admin-lte/dist/js/app.js ではなく、 admin-lte/dist/js/adminlte.js を使いましょう。ってことなのかな? :thinking: