-
Dockerコンテナで完結する、nodemon と Browsersync のシンプルなホットリロードのテンプレ
-
Webフレームワークなしで簡単な静的サイトをホットリロードしつつ作りたく、下記等が自分の環境で動かなかったので作った
-
サーバ側も、Browsersyncのビルトインサーバより若干柔軟にしたくて
app.jsを作り、nodemonでホットリロードさせたnode --watchだと、最初のapp.js編集時はリロードされるのに2回目以降は謎にリロードされなかった
-
macOS 14.7.1
$SHELL --version # GNU bash, version 5.2.37(1)-release (x86_64-apple-darwin23.4.0) docker --version # Docker version 28.0.1, build 068a01e docker-compose --version # Docker Compose version v2.33.1-desktop.1
-
任意の場所にクローンして、初回起動は
docker-compose up --build- 設定を変えてコンテナを再作成する時は
--force-recreateを付けるといいかも
- 設定を変えてコンテナを再作成する時は
-
2回目以降の起動は
docker-compose upまたはdocker-compose up -d- 前者はホットリロードやエラーがすぐ分かる、後者はバッググラウンドで稼動
-
正常起動した例
-
localhost:3030をブラウザでを開くとapp/public/index.htmlが開かれる-
public下を適当に編集するとホットリロードされる
-
index.html以外に任意のHTMLを置いて開いてもホットリロードされる
-
-
サーバアプリ
app/app.jsを編集するとサーバが再起動し、ブラウザもホットリロードされる -
localhost:8080はホットリロードされない (これはこれで使い道があるかも) -
localhost:3031は Browsersync のダッシュボード
-
ポートは
.envで任意に修正可-
PORT_SERVER_CONTAINERコンテナ内でのサーバ待ち受け用 -
PORT_SERVER_HOSTホストからのサーバ接続用 (ホットリロードされない) -
PORT_BROWSERBrowsersyncのメイン (ホットリロードされる) -
PORT_BROWSER_SYNC_UIBrowsersyncの管理画面
-
-
nodemonの設定はpackage.json>nodemonConfig- サンプルの
ignoreを設定済み (編集してもホットリロードさせないもの)
- サンプルの
-
Browsersyncの設定はapp/bs-config.js- 同じくサンプル
ignoreを設定済み
- 同じくサンプル
- 問題等あれば
IssuesやPull Requestを上げていただくか、プロフィールのEメールまでご連絡下さい。
以上