【ロールアップ】

Rollup(バンドラ) とは?

💡 使わないコードはバッサリ切り捨て!軽量バンドルの職人
📌 このページのポイント
Tree Shaking(不要コード除去) バンドル前 funcA funcB util 未使用X 未使用Y 未使用Z Rollup バンドル後 funcA funcB util 除去された不要コード 使用中のコード 未使用コード(除去対象)
Tree Shakingのイメージ
ひよこ ひよこ

Rollupってwebpackと何が違うの?

ペンギン先生 ペンギン先生

webpackは「なんでも入りの万能バンドラ」だけど、RollupはES Modulesに特化したシンプルなバンドラなんだ。余計な機能が少ない分、出力されるコードがとてもきれいだよ

ひよこ ひよこ

Tree Shakingって何?木を揺するの?

ペンギン先生 ペンギン先生

まさにそのイメージ!木を揺すると枯れた葉っぱ(使っていないコード)がパラパラ落ちるでしょ?Rollupはコードの依存関係を解析して、実際に使われていない部分を自動で除去してくれるんだ

ひよこ ひよこ

どういうときにRollupを使うの?

ペンギン先生 ペンギン先生

ライブラリを作って配布するときが一番の出番だね。npmパッケージとして公開するとき、Rollupでビルドすると無駄のない軽量なファイルが出来上がるよ

ひよこ ひよこ

ViteがRollupを使ってるって聞いたけど本当?

ペンギン先生 ペンギン先生

そうだよ!Viteは開発時はesbuildで高速にトランスパイルして、本番ビルドではRollupを使っているんだ。Rollupのプラグインエコシステムがそのまま使えるのも大きな強みだね

ひよこ ひよこ

Rollupのプラグインってたくさんあるの?

ペンギン先生 ペンギン先生

かなり充実しているよ。TypeScript対応、CommonJS変換、JSON読み込みなど基本的なものから、コード圧縮やバンドル分析まで揃っている。しかもViteのプラグインシステムはRollupと互換性があるから、エコシステムが共有されているんだ。Rollupは裏方だけど、モダンフロントエンドの屋台骨を支えている存在だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Rollup」って出てきたら「ES Modules向けの軽量バンドラで、Tree Shakingが得意なやつ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Rollup」 = 巻き上げる・まとめる
💬 複数のモジュールを1つに「巻き上げて」まとめるイメージからこの名前がついたよ
← 用語集にもどる