今回は、Webpackの開発サーバー(devServer)の使い方を解説します。
Webpackを使用して開発する上で、一番のメリットはコードの修正から確認までの時間を最短にできることです。
通常、コードの修正から確認までを行うには、コードを書き換えるたびに手動でビルド(npm run build)を行い、ブラウザを再リロードする必要があります。
しかし、開発サーバーを導入すれば、ファイルを保存した瞬間に変更がブラウザへ反映されるようになります。
より効率的に開発を進めたい方は、ぜひ導入してみてください。
※本記事は、Webpack 5を使用した環境を前提としています。
Webpackの開発サーバーの設定方法
STEP. 1:webpack-dev-serverパッケージのインストール
まずは、新たにwebpack-dev-serverパッケージをインストールします。
npm install webpack-dev-server --save-devSTEP. 2:devServerプロパティの追加
続いて、パッケージがインストールされたら、webpackの開発用設定ファイルにdevServerというプロパティを追加します。
本記事では、Webpackの設定ファイルを開発用と本番用で分割しています。
const { merge } = require("webpack-merge");
const common = require("./webpack.common.js");
module.exports = merge(common({ useHash: false }), {
mode: "development",
devtool: "eval-source-map",
devServer: {},
});続いて、devServerの中に、開発効率を上げるためのオプションを記述します。代表的な設定項目は以下の通りです。
| static | サーバーが参照する静的ファイルのディレクトリを指定。通常はビルド先であるdistフォルダなどを指定する。パスを文字列で直接指定する簡潔な方法と詳細な挙動をカスタマイズできるオブジェクト形式の2通りの書き方がある。 |
|---|---|
| open | サーバー起動時に、自動的にブラウザを立ち上げるかどうかを制御する。 |
| port | 開発サーバーを立ち上げるポート番号を指定する。 |
| hot | 「Hot Module Replacement(HMR)」を有効にする。 設定されていると、コードを修正した際にページ全体をリロードせず、変更したモジュールだけを即座に反映させることができる。(デフォルト:true) |
const path = require("node:path");
const { merge } = require("webpack-merge");
const common = require("./webpack.common.js");
module.exports = merge(common({ useHash: false }), {
mode: "development",
devtool: "eval-source-map",
devServer: {
static: path.join(__dirname, "dist"),
open: true,
port: 8080,
hot: true,
},
});これで、以下のコマンドを実行して開発サーバーを起動します。
注意すべき点としては、開発サーバーを立ち上げる際は、通常のビルドコマンド(npx webpack)ではなく、必ずserveサブコマンドを後ろに付けます。
npx webpack serve --config ./webpack.dev.jsこれで、Webpackの開発サーバーを立ち上げることができました。
STEP. 3:npmスクリプトへの登録
開発サーバーを起動する際、毎回「npx webpack serve –config ./webpack.dev.js」と長いコマンドを入力するのは手間がかかります。
そこで、package.jsonのscriptsフィールドに登録しておきましょう。
元々あった開発用の設定(”dev”: “webpack –config ./webpack.dev.js”)を書き換えても良いですが、今回はそれとは別に、開発サーバー専用のコマンドを追加します。
{
"name": "webpack-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "webpack serve --config ./webpack.dev.js",
"dev": "webpack --config ./webpack.dev.js",
"build": "webpack --config ./webpack.prod.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
//以下省略
}
}これで、npm run startとコマンドを叩くことで、開発サーバーを起動できます。
一点、コードを変更するとブラウザには即座に反映されますが、それはメモリ上で処理されているためで、/distフォルダの中身が更新されるわけではありません。
そのため、最終的にサーバーへアップロードするための最新ファイルが必要な場合は、必ずnpm run buildを実行して、物理的なファイルを生成するようにしましょう。
まとめ
今回は、Webpackの開発サーバー(devServer)の設定方法を解説しました。
webpack-dev-serverを使って、効率的に開発を進めたい方は、ぜひ使ってみて下さい。
次回は、コードの品質を一定に保つためのツール、ESLintを導入・設定する方法について解説します。
最後までご覧頂き、ありがとうございました。
Webサイトのスポット修正・保守ならお任せ下さい!
ちょっとした修正や調整をしたいけれど、「制作会社に頼んだら高額になりそう」「どこに相談すればいいかわからない」そんなお悩みはありませんか?
弊所「E-VALUE WORKS」では、テキスト修正や軽微な調整などのスポット対応から、月額での保守・管理(外部Web担当)まで、ニーズに合わせたWebサイトの修正・保守サービスを提供しています。
「これって依頼できる?」という段階でも構いません。まずはお気軽にご相談ください。