Visual Studio Codeで簡易的なローカルサーバーを起動して、コード保存時に自動でブラウザをリロードする拡張機能「Live Server」

ちょっとしたコードを書くときに、わざわざ別のツールを使うこと無くローカルサーバーを起動し、さらにライブリロード機能(コード保存時に自動的にブラウザリロードをする機能)にも対応しているVisual Studio Codeの拡張機能が「Live Server」です。
今回はこのLive Serverに関してまとめておきます。
Live Server

Live Serevrの特徴は下記の通りです。
- ローカルサーバーを簡単に起動できる
- ライブリロード機能に対応
HTMLを書く場合であれば、人によっては直接HTMLファイルをブラウザに読み込んで確認しているかもしれませんが、それだと実際にサーバーにアップしたときと動きが異なる可能性があります。
ローカルサーバーを使う意味
その例の1つが「ルート相対パス」です。
下記のようなパスを指定してCSSファイルを読み込みたい場合、サーバー上であれば「example.com/assets/css/style.css」を読み込みにいきますが、直接HTMLファイルをブラウザに読み込んでいる場合は、PCの最も上位にある「assets」フォルダ内を見に行ってしまい、正しく読み込まれません。
<link rel="stylesheet" href="/assets/css/style.css">ローカルサーバーを起動すると、指定したフォルダをルートとしてファイルを読み込むので、正しく読み込まれます。
HTMLファイルをブラウザに読み込んでいる場合は、下記のように最初に.(ピリオド)を付けて、通常の相対パスにすることで正しく読み込まれるようになります。
<link rel="stylesheet" href="./assets/css/style.css">このように、ルート相対パスはローカルサーバー上でないと正しく読み込まれません。
可能な限り最終的にアップするサーバーと同じ環境にすることで、予想外のトラブルを早く発見できます。
ライブリロード機能
通常、コードを変更して保存したあとはブラウザに移動してリロードする必要があります。
しかし、ライブリロード機能(ホットリロード機能と呼ぶ場合もあります)を使うと、コード保存時に自動でブラウザをリロードしてコードを反映してくれます。
デュアルディスプレイで作業している人にとってかなり便利な機能で、片方の画面にVisual Studio Code、もう片方の画面にGoogle Chromeなどのブラウザを配置しておいて、コードを書いて保存すれば、すぐ横の画面でリロードされて確認できます。
非常に細かいことですが、積み重ねで時間の節約になりますし、小さなストレスがなくなります。
基本的な使い方
Live Serverをインストールすると、Visual Studio Codeの画面右下に「Go Live」というメニューが追加されます。

フォルダをVisual Studio Codeで開いた状態であれば、このメニューをクリックするとブラウザが起動して、ローカルサーバーで表示されます。
ローカルサーバーが起動すると「Port : ○○○○」という表示に切り替わって、もう1度メニューをクリックして終了できます。

エクスプローラーからページを開く
サイドバーの[エクスプローラー]で、ファイルを右クリックすると「Open with Live Server」という項目が表示されます。
これを選択すると、選択したファイルをローカルサーバー上で開いてくれます。
![[エクスプローラー]→[Open with Live Server]](https://webrandum.net/mskz/wp-content/uploads/2022/07/image_4.png)
もしくは、ファイルを開いた状態でcommand + Lを押したあとにcommand + Oを押しても、開いているファイルがローカルサーバーで開かれます。
設定の変更
Visual Studio Codeの設定を変更したり、settings.jsonファイルにコードを追加することで、さらに便利にカスタマイズできます。
デフォルトブラウザの変更
「liveServer.settings.CustomBrowser」でデフォルトブラウザの変更ができます。
{
"liveServer.settings.CustomBrowser": "chrome"
}設定できる値は下記の通りです。
| ブラウザ | 設定 |
|---|---|
| Google Chrome | chrome |
| Google Chrome (シークレットモード) | chrome.PrivateMode |
| Firefox | firefox |
| Firefox (プライベートモード) | firefox.PrivateMode |
| Edge | microsoft-edge |
| Blisk | blisk |
ローカルサーバー起動時にブラウザを起動しない
「Go Live」をクリックした時に、ブラウザを起動させたくない場合は「liveServer.settings.NoBrowser」を「true」にします。
{
"liveServer.settings.NoBrowser": true,
}特定ディレクトリをルートに指定する
現在開いているワークスペースのフォルダをルートにするのではなく、指定した特定のフォルダをルートに指定したい場合は「liveServer.settings.root」を使います。
例えばプロジェクトフォルダの中に「dist」フォルダを作って、そこにコンパイルされたファイルを格納している場合に使えます。
{
"liveServer.settings.root": "/dist"
}スマホから表示確認でいるアドレス形式に変更する
Live Serverで起動したローカルサーバーは、同じWi-Fi環境下であればスマホからでも確認できます。
「liveServer.settings.useLocalIp」を「true」にすると、表示されるURLが「192.168.0.185:5500」のようなIPアドレス形式に変わります。
{
"liveServer.settings.useLocalIp": true,
}このIPアドレスを、同じWi-Fi環境下のスマホのブラウザで開くと表示されます。
MacとiPhoneを使っている人であれば、スマートコピーを使うと簡単にiPhoneにIPアドレスをコピーできます。


WordPressの常時SSL化で、下層ページのhttpからhttpsへのリダイレクトがうまくいかない場合に確認すること
MAMPでローカル開発環境にWordPressをインストールする手順
横幅が広がったときの挙動が変わる!CSS Gridの「auto-fill」と「auto-fit」の違い
iOS Safariでinputタグにフォーカスを合わせると、自動で画面が拡大してしまう原因と解決方法
HTML・CSSでWebサイト制作を行う際に必要なツール
SourceTreeで環境設定の「カスタムアクション」「アップデート」「高度な設定」が選択できない
Nuxt.jsでのページ遷移設定方法(Vue Routerやnuxt-link)|Nuxt.jsの基本
常時SSL化の設定をしたのに「保護された通信」が表示されない時はパスにHTTPが残っているのかも?
gulpでSSI(サーバーサイドインクルード)を使用する「connect-ssi」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Alfredで現在開いているフォルダ内の画像をImageOptimで圧縮するWorkflowの作り方
ATOKのクラウド推測変換やナントカ変換を使って、単語をラクで正確に変換する
Alfredと1Passwordの連携をもっと便利に使いこなすための1Passwordのカテゴリ管理方法
複数サービスを1つのアプリで管理できるStationの通知設定
AutoSleepを使って、Apple Watchをつけたまま寝るだけで自動的に睡眠ログを取る!
Fantastical 2 for Macでスムーズにカレンダーの登録を行う
疑似クラスの:hoverと:activeのスマホでの挙動の違い
Webサイト制作の基礎の基礎、HTMLって何?
ダミーとして使うURLは適当に入力せず、決まったものを使うようにしよう
Node.jsのバージョン管理をnodebrewからnodenvに移行する方法