今更ながらBrowserSyncがすごい便利だなあ。


対象読者

基本的なことしか書いてないので、BrowserSync使ったことない方向けです。

執筆動機

これまで何も考えずにwebpack-dev-serverを使っていたんですが、ちょっと気分転換がてらにBrowserSyncを試してみたら、感動の機能が詰まっていたので、覚書ついでにここに書き残します。

BrowserSyncとは

これです。
https://www.npmjs.com/package/browser-sync

ローカルサーバーを立ち上げ、ファイル変更に応じて自動でリロードをしてくれるツールなのですが、それ以外にもたくさん便利機能がありました。(後述)

自分の場合、npm scriptsで以下のようなスクリプトを書いて動かしています。

"local:server": "browser-sync start --server './local/' --config bs-config.js",

左から、browser-syncを開始、--serverでデフォルトブラウザを起動し、localディレクトリをルートにして、bs-config.jsの設定通りに動かす、というようなかんじです。

便利① ブラウザ間での同期が自動で行われる

この機能がおそらくBrowserSyncの目玉なんじゃないでしょうか。
同じブラウザでなくとも、同時に起動しているブラウザには変更が即時に反映されます。
こんなかんじ。

これがあれば、ブラウザごとの動作比較の他にも、
PCとスマホの画面サイズを同時に検証できます・・・!

便利② CSSガイドやグリッドを表示してくれる

BrowserSyncには指定したポートで開ける設定管理画面があるのですが、そこに嬉しい機能が・・・!

CSS Outlining = CSSに応じて簡易的にアウトライン表示
CSS Depth Outlining = 試し忘れましたが、影をつけて要素の重なりが見える機能かと。。!
Overlay CSS Grid = デザインテストに便利なグリッド表示してくれます。

便利③

ネットワークのスピードをシミュレーションしてくれる

ローカル開発をしながら、スローネットワークを再現してテストが可能なすぐれもの。

結論

いまのところローカルサーバーでの開発で一番優秀なんじゃないかと思っています。
設定も簡単。
作者に圧倒的感謝・・・!

お読みいただきありがとうございました。