Webフロントエンドでの話 その2
Webフロントエンドでの話 - 檜山正幸のキマイラ飼育記 メモ編 の続き。
browserify, babele, webpackとか。
- babelはトランスパイラである、と。で、browserifyはトランスパイラとは違うのか?
- browserifyは、依存性を分析してブラウザー向けに変換するのかな。
- browserifyは、生のJSしか使ってなくても必要。一方、babelは高水準言語(ES6,7)を使わないなら不要。
- TypeScriptを使うなら、babelの代わりにtscなんだろう。それでもbrowserifyは必要。
- brwoserifyはバンドリングをやっているので、webpackと機能は重複する。
browserifyは、npm-scriptsからなら、次のように実行するらしい。
"scripts": { "build": "browserify --debug --transform babelify app.jsx --outfile bundle.js" }
モジュール機構に関して言えば:
Babelでimport/export構文をrequire構文に変換し、Browserifyでrequire構文をブラウザでも利用できるように変換することで、import/ export構文が利用できるようになります。
なんだと。ふーん。
webpackはbrowserifyと同種のように思える。brwoserify→webpack という移行の話が多い。
どうも、webpackはbrowserifyとタスクランナーの両方を置き換えるモノのようだ。現時点(2017年末)では、webpack-3が良い選択のもよう。いつ変わってしまうか分からんが、、、、
Webフロントエンドって、なんでこう流行り廃りが激しい? たぶん次のようなサイクルだろう。
- あーめんどくせー、あーー不便だ。
- とりあえずツール作ったよ(とりあえずだから余り考えてはいない)
- おおおー、便利。いいねコレ、グッジョ! サンキュー!
- ん? なんかかコレ、あんまり便利じゃないかも。
- あーー不便だ。
- とりあえずもっといいツール作ったよ(とりあえずだからヤッパリ考えてはいない)
- 3に戻って繰り返し。
ツール作るほうも使うほうも、あまりよく考えない習慣・文化なんだろう。作るほうが先を見越せないのはどこでも同じだから、むしろ、使う側の"飛びつき”現象が問題なんだろう。