JavaScriptのモジュールとコード資産をバンドルするための人気ツールであるwebpack 2の最終リリースが到着した。ES2015のネイティブサポートに加え,ドキュメントが大幅に改善されている。ただし,新バージョンでビルド時間やファイルサイズが大幅に改善されたと判断するのは早過ぎる。
webpack 2(公式バージョンは2.2)には,作業性向上のための変更が数多く含まれている。最も歓迎されるアップグレードのひとつは,新たなドキュメントだ。例えばversion 2 docsではローダやプラグインなど,中核的なコンセプトの解説に専用のセクションを割いている他,コンフィギュレーションについても1.xのドキュメントより詳細に解説されている。これによる初心者の学習時間の削減と習得速度の向上が期待されると同時に,チームがドキュメントを非常に重視していることも理解できる。
webpackのドキュメントコーディネータであるJuho Vepsäläinen氏は,バージョン2の成功において,この新たなドキュメントは不可欠なものだと述べている。
webpackをすでに理解しているのであれば,[1.0の]ドキュメントは非常に役立ちます。しかしツールを調べ始めたばかりならば,提供されるエクスペリエンスは期待以下のものに過ぎません。webpackをより親しみやすく,より便利なものにするため,ドキュメントを再構築することにしました。
バージョン1.xを使用している開発者が2.xにスイッチするために,マイグレーションガイドが用意されている。新バージョンではいくつかのコンフィギュレーション項目が変更されて,より理解しやすくなった。一例として,トップレベルのmodule.loaders
セクションがmodule.rules
に変更されている。バージョン1.xのコンフィギュレーションでは,loaderの中にloadersがあったため,混乱を招く恐れがあったが,新バージョンではローダがルールの一部として使用されるようになり,より明確になった。
これまでの方法では,ローダのチェーン指定は面倒で,見栄えも悪かった。,
loader: "style-loader!css-loader!less-loader"
新しい方法では配列に分割されたため,はるかに読みやすくなっている。
use: [
"style-loader",
"css-loader",
"less-loader"
]
webpack 2は初期状態でES2015をサポートしているので,デフォルトでツリーシェイキング(tree shaking)をサポートする。ツリーシェイキングは,ターゲットバンドルから未使用コードを削除して,サイズを小さくするためのものだ。ただし残念ながら,ブラウザがES2015モジュールをデフォルトでサポートしていないことから,現在のJavaScriptエコシステムはコードをCommonJSにコンパイルして提供されているので,効果は限定的なものになる。現時点での改善は限定的なものになる,とSwizec Teller氏は述べている。
ただし,エコシステムが追いつくのを待つ必要があります。ライブラリのほとんどがES6にコンパイルされたES6モジュールと一緒に配布されているため,現実的なシナリオとして,改善は4%程度に留まります。間もなく現れるwebpack 2によって,この状況は改善されるはずです。
大幅な速度改善についても明確ではない。Brett Uglow氏は,webpack 2の実行速度に関する自身の経験について書く中で,その結果には失望を覚えた,と述べている。ただし,webpackコアチームのメンバであるSean Larkin氏によると,開発の終盤になってwebpackのビルド方法を変更したことによって“パフォーマンス面でいくつかの注目すべき前進があった“と言うことだ。
チームは今後,機能開発の指針と優先順位付けの参考とするために,機能投票システムを導入してコミュニティの意見を集める方針である。バージョン2.2は間もなく,‘npm install webpack
’コマンド発行時にインストールされるデフォルトバージョンになる予定だ。
この記事を評価
- 編集者評
- 編集長アクション