ブラウザ開発者ツールの秘密
(christianheilmann.com)<p>1. Console には `log()` 以上に多くの機能がある<br />
- フィルタリングオプション<br />
- {} : 変数の値/名前を一緒に表示<br />
- warn/info/error() : ログレベル<br />
- assert(): 特定の条件のときだけ出力<br />
- trace(): 誰が呼び出したか <br />
- group(): メッセージをグループ化して展開/折りたたみ可能 <br />
- table(): 情報をテーブルで出力 <br />
- $() = document.querySelector(), $$() = document.querySelectorAll()<br />
$$('a').map(a => {<br />
return {url: a.href, text: a.innerText}<br />
})<br />
<br />
2. ソースコードに触れずにログを残す<br />
- Live Expressions : リアルタイムで変化する変数の値を確認<br />
- logpoints : 特別な形のブレークポイントで、その行の実行時にログを出力。技術的には `console.log` をウェブページのどこにでも追加できるもの<br />
<br />
3. ブラウザの外にログを残す <br />
- VS Code Debugger<br />
<br />
4. どんなサイトにもコードをインジェクションする(Chromium 系ブラウザ: Edge、Chrome、Brave..)<br />
- Snippets : 現在のウェブサイトに対してスクリプトを実行 <br />
- Overrides : リモートスクリプトのコピーを保存して修正し、その後ページ読み込み時にオーバーライド <br />
<br />
5. さらに多くの場所で Inspect & Debug が可能(Chromium 系ブラウザ)<br />
- Electron 系はすべて対応 : GitHub Desktop、VS Code、ブラウザの Developer Tools 自体も Developer Tools でデバッグ可能<br />
- MS Edge Tools for VS Code <br />
<br />
6. 厄介な秘密たち<br />
- 人々は開発者ツールの一部しか使っていない。おそらく説明ドキュメントが不足しているためだと思われ、多くの時間をかけてドキュメントを作ったが、それが解決策ではないようだ <br />
- 開発者ツールはますます複雑になり、数多くの機能に圧倒されるようになる。改善する方法はないだろうか?<br />
→ Edge は Focus Mode の導入を進めている。すべての機能を見せる代わりに、ユースケースごとに必要なツールだけを表示するもの <br />
→ Informational Overlays も作業中。開発者ツール内ですぐ見られるヘルプを提供するもの <br />
- コードを書くことと完成物をデバッグすることの間には、まだ断絶がある <br />
→ ブラウザ開発者ツールで変更した内容を、どうやってコードに反映させるか?<br />
→ 1つは開発者ツールを VS Code で置き換え、ツール使用時にハードドライブ上のファイルを直接変更すること<br />
→ もう1つは VS Code 拡張の一部として、開発者ツールを使って変更してもディスク上のファイルを変更できるよう選択可能にすること<br />
<br />
7. あなたは開発者ツールの Audience であり Client でもある <br />
→ Report a Bug / Request a Feature などでフィードバックを送る </p>
3件のコメント