EChartsはフルパッケージで導入するとファイルサイズがかなり大きくなりますが、「Tree Shaking(ツリーシェイキング)」に対応したモジュール単位のインポートを行うことで、使用する機能だけに絞り込み、サイズを劇的に軽量化できます。
以下に、ECharts 5以降で推奨されている、必要なコンポーネントのみを抽出してビルドする手順を解説します。
1. 基本的な実装手順
必要なモジュールを echarts/core から読み込み、echarts.use() で登録するのが基本の流れです。
実装例(例:棒グラフ + ツールチップ + Canvasレンダラー)
// 1. コアモジュールの導入
import * as echarts from 'echarts/core';
// 2. 使用するチャート(グラフ種類)の導入
import { BarChart } from 'echarts/charts';
// 3. 使用するコンポーネント(タイトル、ツールチップ、グリッドなど)の導入
import {
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent
} from 'echarts/components';
// 4. レンダラーの導入(Canvas または SVG)
import { CanvasRenderer } from 'echarts/renderers';
// 5. 必要な機能を登録
echarts.use([
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent,
BarChart,
CanvasRenderer
]);
// あとは通常通り初期化して使用
const myChart = echarts.init(document.getElementById('main'));
myChart.setOption({
// ...設定
});
2. 主要なインポートパスのリスト
使用したいグラフや機能に合わせて、以下のパスからインポートしてください。
チャート(echarts/charts)
LineChart: 折れ線グラフBarChart: 棒グラフPieChart: 円グラフScatterChart: 散布図RadarChart: レーダーチャート
コンポーネント(echarts/components)
GridComponent: グラフの描画エリア(多くの場合必須)TitleComponent: タイトルTooltipComponent: ツールチップ(マウスオーバー時の詳細表示)LegendComponent: 凡例VisualMapComponent: データの視覚的なマッピングDataZoomComponent: ズーム機能
レンダラー(echarts/renderers)
CanvasRenderer: 標準的なレンダラー(通常はこちら)SVGRenderer: ベクター形式。メモリ消費を抑えたい場合や拡大・縮小に強い。
3. さらにサイズを削るためのポイント
TypeScriptを使用している場合
型定義も同様にインポートすることで、開発効率を落とさずに軽量化できます。
import { ComposeOption } from 'echarts/core';
import { BarSeriesOption } from 'echarts/charts';
import { TitleComponentOption } from 'echarts/components';
// 使用する機能の型のみを合成
type ECOption = ComposeOption<
BarSeriesOption | TitleComponentOption
>;
Webpack / Vite の設定
特別な設定は不要ですが、ビルドツール側で production モードにしておくことで、Tree Shakingが有効になり、未使用のコードが最終的なバンドルファイルから削除されます。
4. オンラインビルダーの活用(npmを使用しない場合)
もしビルドツール(Webpack等)を使わずに、静的なJSファイルとして軽量版が欲しい場合は、公式のオンラインビルダーが便利です。
- ECharts Online Builder にアクセス
- 必要なグラフやコンポーネントにチェックを入れる
- 「Download」ボタンを押すと、それらだけが含まれた
echarts.min.jsが生成されます。


コメント