はじめに
Rails7系からWebpacker
が非推奨になり、importmap-rails
やjsbundling-rails
でJavaScript
を管理するようになりました。今回はjsbundling-rails
を用いたモジュールバンドラーの比較を少しまとめてみました。
jsbundling-railsとは
jsbundling-rails
は、Webpack
や esbuild
、rollup
といったモジュールバンドラーの使用をサポートする Gemです。
比較
esbuild | rollup | webpack | |
---|---|---|---|
ビルド速度 | 高速 | 低速 | 低速 |
CommonJSモジュール対応 | ○ | △(要プラグイン) | ○ |
ES6対応 | ○ | ○ | △(要Babel) |
TypeScriptのトランスパイル | ○ | △(要プラグイン) | △(要プラグイン) |
JSX構文のトランスパイル | ○ | △(要プラグイン) | △(要Babel) |
考察
特筆すべきは、esbuild
の速度です。
他2つと比較すると、100倍以上の差があるような事例もあるそうです。
他を比較しても、CommonJSモジュール
とES6
に対応しています。また、TypeScript
とJSX構文
のトランスパイルもサポートしています。これらの特性は、大規模なプロジェクトで高速なビルドを必要とする場合や、TypeScript
やJSX
を頻繁に使用する場合に有効かと思いますが、特段理由が無ければ、モジュールバンドラーに関してはesbuild
を使う方向で問題ないのではないかと思います。
参考