コンテンツにスキップ

Webpack

出典: フリー教科書『ウィキブックス(Wikibooks)』

はじめに

[編集]

Webpackとは

[編集]

Webpackは、モダンなJavaScriptアプリケーションのための静的モジュールバンドラーです。Webpackの主な目的は、プロジェクトの依存関係を効率的にまとめ、最適化することです。

インストールと基本セットアップ

[編集]

インストール方法

[編集]

Node.jsプロジェクトでWebpackをインストールするには、以下のコマンドを使用します:

npm install webpack webpack-cli --save-dev

基本設定ファイル

[編集]

プロジェクトのルートディレクトリに webpack.config.js を作成します:

const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  mode: 'development'
};

主要な概念

[編集]

エントリーポイント

[編集]

エントリーポイントは、Webpackがビルドプロセスを開始するファイルを示します。デフォルトは ./src/index.js です。

ローダー

[編集]

ローダーにより、Webpackは JavaScript以外のファイルタイプを処理できます。代表的な例:

  • css-loader: CSSファイルの処理
  • babel-loader: JavaScriptの最新構文を古いブラウザで動作するコードに変換
  • file-loader: 画像やフォントファイルの処理
設定例:
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader'
        }
      }
    ]
  }
};

プラグイン

[編集]

プラグインはWebpackの機能を拡張します:

  • HtmlWebpackPlugin: HTMLファイルの自動生成
  • MiniCssExtractPlugin: CSSファイルの別出力
  • CleanWebpackPlugin: ビルド前に出力ディレクトリをクリーン

最適化

[編集]

コード分割

[編集]

動的インポートを使用してコード分割:

// 動的インポート
import('./module').then(module => {
  // モジュール使用
});

本番環境の最適化

[編集]

本番ビルド用の設定:

module.exports = {
  mode: 'production',
  optimization: {
    minimize: true,
    splitChunks: {
      chunks: 'all'
    }
  }
};

開発サーバー

[編集]

webpack-dev-server

[編集]

ホットリロード機能付きの開発サーバーをセットアップ:

npm install webpack-dev-server --save-dev
package.jsonスクリプト:
{
  "scripts": {
    "start": "webpack serve --open"
  }
}

トラブルシューティング

[編集]

一般的な問題と解決策

[編集]
  • 依存関係の解決: npm install で不足しているパッケージを確認
  • ローダーの設定ミス: コンソールエラーを注意深く確認
  • パフォーマンス: webpack-bundle-analyzer でバンドルサイズを分析

結論

[編集]

Webpackは複雑に見えますが、段階的に学ぶことで強力なビルドツールを習得できます。継続的に公式ドキュメントを参照し、実践することをおすすめします。