Closed azu closed 7 years ago
MSEdgeとWebKitにES modules(<script type="module">
)が実装されています。
ES modulesとNode.js modulesについては細かな挙動の違いなどが存在します。 詳しくは次の記事を読むと良いです。
webpack 2やrollupなどはES modulesのコードを直接扱うようになっています。 ES modulesのブラウザ実装が進むにつれ、ES modulesを扱うツールなども増えてくることが予想されます。 Bundlerはそこへ直接関係するツールであるため、今後の動きに注目していく必要があります。
webpack 2
webpack 2が正式にリリースされています。
webpack 2のドキュメントは webpack.js.org/ の新しいサイトの方にまとめられています。
Migrating from v1 to v2にマイグレーションガイドがあります。
一部設定の名前が変更されていたり、
json-loader
がデフォルトとなっていたり既存のconfigを変更する参考になると思います。また多くの人は次のパフォーマンス警告にかかると思うので、次の記事を読むと良いかもしれません。
Fusebox
Fuseboxという新しいBundlerツールが登場しました。 実際に試してみると、初回のビルドと再ビルド(
.fusebox
のキャッシュあり)どちらも高速です。基本的に設定はJavaScriptのコードとして書くようになっていて、
node
で実行するだけです。また、webpackのように設定としてentryポイントを設定するのではなく、ビルドの設定をする
FuseBox.init
と実際にbudnleするものを決めるfuse.bundle
メソッドで分かれています。そのためコードとして設定を書くgulpとは相性がいいため、公式のサンプルでもgulp内に書いている例を見かけます。
Rollup
Rollupは順調に開発中です。
browserify
browserify自体を機能追加/改善するアップデートはあまり積極的に行われていません。 substack以外にPRをマージするOwnerがいないことに起因しています。
元々本体に多くの機能があるわけではなく依存するパッケージに機能が分散しています。 しかし、その依存のアップデートが滞りがちであるため、 Issue/PRにはNode.js v6>=で追加されたDeprecated Warningや依存するパッケージのDeprecated Warningを解消する些細なものが多く並んでいます。
先日、14.0.0がリリースされました。 このリリースでは、browserifyが利用する
buffer
のpolyfillであるfeross/bufferがアップデートされています。TypedArray
を使う実装になったため、bufferを含んだコードを変換した場合に、IE10以下では動かなくなります。IE10以下でも動くようにしたい場合は、古いfeross/bufferを利用する必要があります。