browserSyncを使ってブラウザを自動リロードさせよう【gulp4】

html/css
この記事は約8分で読めます。
スポンサーリンク

はじめに

web制作ではhtmlやcssでコーディングした後ブラウザで表示の確認をしますよね。

表示の確認をするにはブラウザ側を手動で更新しないといけません。

一見単純な作業ですが毎回手動で確認するのも面倒です。

今回はbrowser-syncというプラグインを使ってブラウザを自動リロードする方法について説明していきます。

対象者
  • gulpを使って自動リロードさせたい方
  • 手動でブラウザを更新するのを手間に感じている方

その他gulpのおすすめのプラグインはこちら

gulpの使い方まとめについてはこちら。

gulpfile.jsのテンプレート紹介についてはこちら。

それではブラウザを自動リロードする方法について説明していきます。

スポンサーリンク

メリット

ブラウザを自動リロードさせるだけであれば、VSCodeのプラグイン「Live Server」を使えばいいです。

しかしbrowser-syncを使えば以下3つのようなメリットがあります。

  • ブラウザ更新時に編集位置まで自動スクロールしてくれる
  • スマホなどの別の端末でブラウザ表示を同期してくれる
  • gulpでより細かい設定ができる
スポンサーリンク

ディレクトリ構成

今回のディレクトリ構成は下記になります。

test
├ node_modules
├ dist
├ src
│ └ index.html
├ gulpfile.js
├ package-lock.json
└ package.json

srcの中にindex.html を入れています。

browser-syncを使ってindex.html を表示させる方法について説明していきます。

スポンサーリンク

browser-syncをインストールしよう

それではbrowser-syncをインストールしていきましょう。

npm i -D browser-sync

下記コマンドをターミナルで実行してbrowser-syncをインストールします。

npm i -D browser-sync

browser-sync 公式

スポンサーリンク

gulpfile.jsを編集しよう

プラグインのインストールが完了したらgulpfile.jsを編集していきましょう。

//----------------------------------------------------------------------
//  モード
//----------------------------------------------------------------------
"use strict";

//----------------------------------------------------------------------
//  モジュール読み込み
//----------------------------------------------------------------------
const gulp = require("gulp");
const { src, dest, series, parallel, watch, tree } = require("gulp");

const bs = require("browser-sync");

//----------------------------------------------------------------------
//  関数定義
//----------------------------------------------------------------------
function bsInit(done) {
  bs.init({
    server: {
      baseDir: "./"                   // browser-syncが基準とするディレクトリを指定する
    },
    startPath: "src/index.html",      // 開きたいパスを指定する
    notify: false,                    // ブラウザ更新時に出てくる通知を非表示にする
    open: "external",                 // ローカルIPアドレスでサーバを立ち上げる
  });

  done();
}

function bsReload(done) {
	bs.reload();

	done();
}

function watchTask(done) {
	watch(["./src/**"], series(bsReload));    //	監視対象とするパスはお好みで
}

//----------------------------------------------------------------------
//  タスク定義
//----------------------------------------------------------------------
exports.bs = series(bsInit, bsReload, watchTask);

/************************************************************************/
/*  END OF FILE                                                         */
/************************************************************************/
スポンサーリンク

browser-syncオプション

browser-syncの処理を定義しました。

今回定義したオプションについてまとめておきます。

オプション内容
baseDir./browser-syncが基準とするディレクトリを指定する。
startPath/src/index.html開きたいパスを指定する。
notifyfalseブラウザ更新時に出てくる通知を非表示にする。
openexternalローカルIPアドレスでサーバを立ち上げる。
browser-syncで立ち上げたブラウザのURLをスマホなどの他の端末で入力すると表示される。
スポンサーリンク

コマンドを実行しよう

以下コマンドを実行しましょう。

npx gulp bs

「npx」のコマンド使用時にエラーが出る方はこちらを参照してください。

gulpのインストール先が異なる可能性があります。

以下のようになればbrowser-syncが正しく起動しました。

[00:00:00] Starting 'bs'...
[00:00:00] Starting 'bsInit'...
[00:00:00] Finished 'bsInit' after 43 ms
[00:00:00] Starting 'bsReload'...
[00:00:00] Finished 'bsReload' after 1.17 ms
[00:00:00] Starting 'watchTask'...
[Browsersync] Access URLs:
 ------------------------------------------------------
       Local: http://localhost:3000/src/index.html
    External: http://123.456.78.123:3000/src/index.html
 ------------------------------------------------------
          UI: http://localhost:3001
 UI External: http://localhost:3001
 ------------------------------------------------------
[Browsersync] Serving files from: ./

「Ctrl」 + 「c」でbrowser-syncを終了させることができます。

srcフォルダ のいずれかのファイルを編集したらブラウザが更新することを確認しましょう。

スポンサーリンク

別のhtmlファイルをブラウザに表示させてみよう

index.html をbrowser-syncでブラウザに表示させる方法について説明していきました。

念のためbrowser-syncを使って別のhtmlファイルを表示させる方法について説明します。

startPathオプションを変更する

ブラウザ立ち上げ時点で表示させたいhtmlファイルを変更する方法です。

browser-syncのstartPathオプションを以下のように変更しましょう。

startPath: "src/aaa.html",

browse-syncを起動させるとaaa.html が表示されると思います。

ブラウザのURLを変更する

ブラウザ立ち上げ以降で表示させたいhtmlファイルを変更する方法です。

browser-syncで立ち上げたブラウザのURLを直接変更していきましょう。

index.html

以下のようにindex.htmlaaa.htmlに変更しましょう。

aaa.html

aaa.htmlが表示されれば正しく動作しています。

スポンサーリンク

おわりに

以上browser-syncのプラグインを使ってブラウザを自動リロードする方法について説明しました。

いかがだったでしょうか。

ブラウザを手動で更新するのが面倒に感じている方はぜひbrowser-syncを導入してみてください。

次回はWordPress環境でブラウザを自動リロードさせる方法について説明します。

コメント

タイトルとURLをコピーしました