🟨
Tree Shaking とは?
Tree Shaking は、JavaScript のバンドルサイズを削減するための技術です。具体的には、使用されないコードを静的に解析して除去することで、バンドルサイズを小さくします。
Tree Shaking は、以下の条件を満たすコードに対してのみ適用されます。
- ES2015 (ES6) の import 文と export 文を使用している
- モジュールバンドラーでバンドルしている
Tree Shaking は、モジュールバンドラーが以下の処理を行うことで実現されます。
- エントリーポイントとなるモジュールから開始し、依存関係を辿ってすべてのモジュールを読み込む
- 各モジュールで使用されている関数を分析し、使用されていない関数を特定する
- 使用されていない関数を削除する
Tree Shaking によって、以下のようなメリットを得ることができます。
- バンドルサイズを削減
- ページの読み込み速度を向上
- パフォーマンスを向上
Tree Shaking を有効にするには、モジュールバンドラーの設定を変更する必要があります。具体的な方法は、モジュールバンドラーによって異なります。
Tree Shaking の例
// モジュールA.js
export function add(x, y) {
return x + y;
}
export function subtract(x, y) {
return x - y;
}
// モジュールB.js
import { add } from "./A";
const result = add(1, 2);
console.log(result); // 3
上記のコードの場合、モジュールBは add 関数のみを使用しているため、subtract 関数は Tree Shaking によって削除されます。
Tree Shaking の注意点
Tree Shaking は、以下の点に注意する必要があります。
- デフォルトでエクスポートされた関数のみが対象となる
- 使用されない変数やクラスは削除されない
- サイドエフェクトを持つ関数は削除できない
サイドエフェクトを持つ関数とは?
まとめ
Tree Shaking は、JavaScript のバンドルサイズを削減するための効果的な技術です。モジュールバンドラーを使用している場合は、Tree Shaking を有効にして、バンドルサイズとパフォーマンスを向上させることをおすすめします。
関連記事
ECMAScript Modules (ESM) と CommonJS
Discussion