🧊

Backbone.Marionetteがv2.0.0に

みなさんお待ちかね!

大変お世話になってる身としてはうれしいですねー。
おめでとうございます!

さて、いまMarionetteを使ってるプロジェクトで、割とキリのいいタイミングやったのでアップデートしようとしたのですが、そのままファイル差し替えればOKってなわけではなく・・。

ざっくり変更点と、そこのところをメモしときます。

変更点

参考: Release v2.0.0 · marionettejs/backbone.marionette

詳しいのはきっと別の方がそのうち書いてくれると思うので、自分のプロジェクトで直接関係してたとこを書き連ねておきます。

Global

  • initialize:before イベントが、before:start イベントに名称変更
  • initialize:after イベントが、start イベントに名称変更

Controller

Regions

Views

  • Layout が、LayoutViewに名称変更
  • close メソッドが、destroy メソッドに変更(destroyされたViewは、再openできない)

Collection/CompositeViewは使ってないので気にしてません・・。

アップグレード手順

さて、アップグレードです。

さいしょから

いまからはじめるプロジェクトであれば、今まで通りGithubなりBowerなりで取得して使えばOK。

ドキュメントは更新されてる風なので、大概は大丈夫かと。

つづきから

既存のプロジェクトに適用する場合、ちょっとした手間が必要です。

参考: marionettejs/Marionette.Upgrade

このように、アップグレードどうすりゃいいの?リポジトリがあるのでここからやります。
詳細な手順は上記リポジトリを参照してください。

ただ一言で書くと、コードをがっつり書き換えるバッチみたいなのを叩きます。

上記リポジトリのREADMEにも書いてあるのですが、「テストはしたけど完全な置換は約束できないので、そこんとこ注意してね、なんかあったらPR投げるなり教えてください」とのこと。

おまけ:今のところ私がハマったリスト

  • lib/core/amd/ にあったAMD対応版がまだない
  • Region.close -> emptyの変更を知らずに close -> destroy に置換しちゃってエラーになってた
  • 仕様通りやけど、一度destroyされたViewインスタンスを再利用しようとしててエラーになってた