フロントエンドエンジニアの岡田です。 先日ご報告したとおり、LCLが運営する「夜行バス比較なび」では、jQueryで作られたサイトをReactへ置き換えています。 techblog.lclco.com
記事を書いた後も細々と置き換えを進めていますが、ページ単位での置き換えは、それなりにまとまった時間が取れないと進められません。 しかしSPAのように複数のjsがあるページでは、その時間が取れず、なかなか置き換えが進められませんでした。
そこで、LCLではもっと小さい単位で置き換える方法を試してみました。
手順は以下のとおりです。
- 既存の関数(ES5)を、ES2015へ変換してWebpack管理下のディレクトリへ移動
- 移動した関数をグローバル関数へ変更
- 既存のjsからグローバル関数を呼び出し
この方法を使うと、関数単位で置き換えが可能です。
ES2015への変換ツール
変換にはlebabを使いました。 lebab.io
具体的な方法
既存の関数(ES5)をlebabでES2015へ変換
// 変換後の関数 const hogehoge = () => { };
移動した関数をグローバル関数へ変更
window.grobalHogehoge = hogehoge;
既存のjsからグローバル関数を呼び出し
// グローバルに露出している関数を呼び出し window.grobalHogehoge();
グローバルに露出させるのであまりよくないかもしれませんが、あくまでも移行中の一つの手段としては使えます。この方法で関数をES2015化して、最後にきれいにReactへ置き換えたいと思います。