Visual Studio Codeの「Debugger for Chrome」でJavaScriptのデバッグを行う

この記事の要約
- 「Debugger for Chrome」をインストールして、Visual Studio Codeの「実行」パネルからデバッグを開始すると、ローカルファイルと連動してJavaScriptのデバッグができる
- 設定内容は
.vscode/launch.jsonに記述する必要があるが、実行パネル内にある「launch.json ファイルを作成します」をクリックすればひな形は作成してくれる
Visual Studio Codeの拡張機能である「Debugger for Chrome」を使うと、Google Chromeで開いているローカルファイルとVisual Studio Codeを連携させてJavaScriptのデバッグが行えます。
具体的にできることは下記の通り。
- 変数の確認
- Visual Studio Code上でブレークポイントを設定してコールスタックを確認
- ウォッチ式の確認
- コールスタックの確認
特にJavaScriptのコード量やファイル数が増えてくると、Chrome開発機能側でブレークポイントを設定するのは面倒だったりするので、Visual Studio Code側でデバッグできるのはありがたかったりします。
逆にそこまでコード量やファイル数のないものであれば、Chrome開発機能で十分です。
初期設定
サイドバーの「実行」パネルを開くとデバッグに関する内容が表示されますが、最初はなにも設定していないのでサイドバー内にある「launch.json ファイルを作成します」をクリックします。

すると、.vscode/launch.jsonに下記の設定ファイルのひな形が作成されます。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
}
]
}もしlocalhostなどを設定しているのであれば、"url"の部分だけ合っているか確認して変更するだけで構いませんが、ローカルファイルを参照したい場合は下記の記述に変更します。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch local file",
"type": "chrome",
"request": "launch",
"file": "${workspaceRoot}/index.html"
},
]
}"file"の部分はそのとき表示させたいhtmlファイルのパスに変更すればOKです。
あとはメニューの[実行]→[デバッグ開始(F5)]を選択するか、実行パネルの左上の「Launch local file」の緑色の三角をクリックすると、Google Chromeが起動してデバッグを開始できます。

デバッグ時の停止・リロード・終了などの操作は画面上に表示されるコントローラから行います。

Google Chrome以外のブラウザ
Google Chrome以外のブラウザの拡張機能もあるので、他ブラウザで使いたい場合はそれぞれのブラウザ用の拡張機能をインストールしましょう。
- Firefox:Debugger for Firefox
- Microsoft Edge:Debugger for Microsoft Edge


Visual Studio CodeでMovable TypeのMTMLファイルを開く拡張機能「Movable Type Markup Language Syntax」
様々な作業を自動化するgulpの基礎と導入方法
Visual Studio Codeで対応する括弧に色を付けて見やすくする環境設定
ソースコードをハイライトする軽量ライブラリ「Highlight.js」の導入方法と使い方
goenvを使って、MacにGo言語をインストールする
EJSのincludeで別ファイルを読み込むときの画像パスを指定する方法
Nuxt.jsで「Classic mode for store/ is deprecated and will be removed in Nuxt 3.」のエラーメッセージが表示される場合の対処法
Vue.jsを使う人が最低限導入しておきたいVisual Studio Codeの拡張機能
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
mac環境にnodebrew経由でNode.jsをインストールしてバージョンを管理する方法
Workspacesの特定ワークスペースのURLを取得・実行する方法
CSSで::placeholderにスタイルを設定する方法
Keyboard MaestroでMacログイン時にアプリの遅延起動を行う
さまざまな情報を一元管理するオールインワンのワークスペース「Notion」
Illustratorの「埋め込み」を行うスクリプトで、画像の埋め込みをショートカットで行う!
resizeイベントを使用する場合は、iOS Safariでの挙動に注意
WordPressのカスタムメニューでは、内部リンクに対してカスタムリンクは使わない!
日々のちょっとした作業を効率的にする小技 #1日1Tips – 2019年7月
Google Maps APIをローカル開発環境で使用するときの制限設定方法