4. Bundle
バンドルツールは、複数のJavaScriptファイルやモジュールを一つのファイルにまとめ、ブラウザで効率的にロードできるようにするためのツールです。ここでは、代表的なバンドルツールであるWebpack、Rollup、Parcel、esbuild、Viteについて説明し、それぞれの特徴と基本的な設定を紹介します。
Webpack
特徴
- 開発元:OpenJS Foundation
- 主な利用例:大規模なWebアプリケーションの開発
- 主な特徴:
- プラグインとローダーの豊富なエコシステム
- 柔軟な設定が可能
- 開発モードとプロダクションモードのサポート
基本的な設定
-
Webpackのインストール:
npm install --save-dev webpack webpack-cli
-
設定ファイルの作成:
// webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
],
},
}; -
ビルドコマンドの実行:
npx webpack --config webpack.config.js
Rollup
特徴
- 開発元:Rich Harris
- 主な利用例:ライブラリやモジュールのバンドル
- 主な特徴:
- トレーニングデッドコード(未使用コードの除去)
- モジュール形式のサポート(ESM、CommonJSなど)
- プラグインシステム
基本的な設定
-
Rollupのインストール:
npm install --save-dev rollup
-
設定ファイルの作成:
// rollup.config.js
import babel from 'rollup-plugin-babel';
export default {
input: 'src/index.js',
output: {
file: 'dist/bundle.js',
format: 'cjs',
},
plugins: [
babel({
exclude: 'node_modules/**',
}),
],
}; -
ビルドコマンドの実行:
npx rollup -c rollup.config.js
Parcel
特徴
- 開発元:Devbridge Group
- 主な利用例:シンプルな設定でのプロジェクト開発
- 主な特徴:
- 設定不要のバンドル
- 高速なビルド
- ホットモジュールリプレースメント(HMR)
基本的な設定
-
Parcelのインストール:
npm install --save-dev parcel
-
ビルドコマンドの実行:
npx parcel src/index.html
esbuild
特徴
- 開発元:Evan Wallace
- 主な利用例:非常に高速なバンドルとトランスパイル
- 主な特徴:
- 超高速なビルド速度
- TypeScriptとJSXのネイティブサポート
- シンプルな設定
基本的な設定
-
esbuildのインストール:
npm install --save-dev esbuild
-
ビルドコマンドの実行:
npx esbuild src/index.js --bundle --outfile=dist/bundle.js
Vite
特徴
- 開発元:Evan You
- 主な利用例:モダンなフロントエンド開発
- 主な特徴:
- 開発サーバーの高速起動
- モジュールホットリプレースメント(HMR)
- プラグインシステム
基本的な設定
-
Viteのインストール:
npm create vite@latest
-
プロジェクトのセットアップ:
cd my-vite-app
npm install
npm run dev
各バンドルツールの比較
バンドルツール | 開発元 | 主な利用例 | 特徴 |
---|---|---|---|
Webpack | OpenJS Foundation | 大規模なWebアプリケーションの開発 | プラグインとローダーの豊富なエコシステム、柔軟な設定 |
Rollup | Rich Harris | ライブラリやモジュールのバンドル | トレーニングデッドコード、モジュール形式のサポート |
Parcel | Devbridge Group | シンプルな設定でのプロジェクト開発 | 設定不要のバンドル、高速なビルド、ホットモジュールリプレースメント |
esbuild | Evan Wallace | 非常に高速なバンドルとトランスパイル | 超高速なビルド速度、TypeScriptとJSXのネイティブサポート |
Vite | Evan You | モダンなフロントエンド開発 | 開発サーバーの高速起動、モジュールホットリプレースメント |
各バンドルツールには、それぞれの強みと特徴があります。プロジェクトの要件や使用するプラットフォームに応じて、最適なバンドルツールを選択することが重要です。