512 文字
3 分
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