なんて便利なDevTool！

![adv2018.gif](https://qiita-image-store.s3.amazonaws.com/0/263845/9dea1c7a-c736-4d80-7c65-5344ad48bcbb.gif)


こんにちは＾o＾/

フロントエンジニアになって約8ヶ月。
Chromeの「DevTool」で便利だなと思うことをいくつか紹介します。

では、`⌘ command` + `⌥ option` + `i` でDevToolを開いてみます。


## ローカルオーバーライド
ローカルオーバーライドとは、

- DevToolで編集した部分が、ページ更新をしても失われない
- DevToolでの編集がファイルに保存されている


便利！
　　

では、手順です。

1. 「Source」タブの「>>」をクリックし「Overrides」を選択。<br>
　　![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/fd266f3b-6b62-c072-66ca-b42da21d8056.png)
2. 「Select folder for overrides」を選択するとFinderが開くのでファイルを選択。<br>
　　![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/3dab2121-289a-9df5-b9ac-9edf832d155b.png)
3. 「Enable Local Overrides」にチェック。
4. URLにディレクトリ名を入れればページが表示されます。以下のディレクトリ構造の場合URLは「src/」。<br>
　　![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/77e210c9-5c7f-9366-2312-e04ebb3d3c2a.png)
5. こんな感じです。<br>
　　![iOS のファイル.gif](https://qiita-image-store.s3.amazonaws.com/0/263845/3e29e37a-5ccd-0ab6-d419-e3ce090f0eb9.gif)

おそらく、もっと高度に使えるはずです。。。


## full size screen shot

標準機能のスクリーンショットは
`⌘ command` + `⇧ shift` + `3`、もしくは`⌘ command` + `⇧ shift` + `4`で取れるので、
あくまでもフルサイズ（スクロール部分を含む）のスクリーンショットを取りたいときにおすすめです！

ちなみに、標準機能のスクリーンショットをとる際に`^ control`を押すとクリップボードに保存できて、そのまま貼り付けられますね＾o＾余談です。

　　


では、以下が手順です。

1. `⇧ shift` + `⌘ command` + `p` を押すと、以下のような「**command menu**」が開かれます。<br>こちらはDevTool内の60以上もの機能を検索・実行できます。

2. 「**capture**」と入力します。
3. 「**Capture full size screen shot**」を選択するとフルスクリーンショットがダウンロードされます。

![runcommand.gif](https://qiita-image-store.s3.amazonaws.com/0/263845/1ab7138d-4406-7f57-d665-dac14c35e01a.gif)
フルスクリーンショットをとるために拡張機能を使っていましたが、必要なくなりました〜。

## カラーピッカー
1. 「Element」のスタイルの部分をみます。一番右下にフォーカスすると以下のような４つのアイコンがでてきます。<br>
　　<img src="https://qiita-image-store.s3.amazonaws.com/0/263845/aa23fdb8-4b2a-0772-7915-4dd84bbf65c7.png" width="40%">
2. 「Add color」を選択。背景色を取得したカラーにしたい場合は「Add background-color」を選択。<br>
　　<img src="https://qiita-image-store.s3.amazonaws.com/0/263845/b6b4b6b6-6279-7d52-23fe-1c600dd34daf.png" width="40%">


## ダークモード
別にいらないかもしれませんが。

1. `⌘ command` + `F1` で「Setting」を開きます。<br>
　　![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/2756c154-b6dc-e5ce-d39b-3a1a40ab6bc6.png)
2. 「Preference」の「Appearance」>「Dark」を選択するとダークモードに。
　　<img src="https://qiita-image-store.s3.amazonaws.com/0/263845/6b1b2ce9-b54c-b84f-4580-9b804dd3fb92.png" width="80%">


## ネットワーク接続のエミュレーション
1. 「More Tools」>「Network Conditions」を選択。<br>
![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/e1e1f120-16a5-5ae4-81f2-b4483f957b7d.png)
2. 以下のように選べる。<br>
![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/8fda9a55-53e0-a992-e71a-c6ee82b07494.png)
3. 追加も可能。<br>
![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/d0727e18-64e5-1c23-53d8-dc5104e86e08.png)

## Debug
デバッグの仕方は[こちら](https://developers.google.com/web/tools/chrome-devtools/javascript)にdemoとその手順が詳しく記載されていました！

- Watch：監視したい変数を「+」マークから追加しておくことができる<br>
　　![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/92b74f2d-773a-9e3a-74f4-0ba48bfc4423.png)
- XHR：XHR（Ajax通信）が行われるときにアクセスするURLを登録しておくと通信しようとした時点で止めることができる<br>
　　![image.png](https://qiita-image-store.s3.amazonaws.com/0/263845/df734f45-559c-fc1c-e894-c343ec9332c3.png)

## Curlコマンドのコピー
HEADなどを含めたコマンドをコピーできる。
ログインした状態など、cookieの情報などをそのままコピーできるので便利！

1. 「Network」タブを開く。

2. 任意のリクエストで「Copy」 > 「Copy as cURL」 を選択。
　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263845/170ea075-654c-6421-057a-db12b3abc919.png)


3. これでコピーされているので、ターミナルなどに貼り付ければすぐにヘッダを含めたcurlコマンドが叩ける。

`````curl:コピーされたコマンド
curl 'https://qiita.com/miiina016/items/e3626e54c68ba916291b' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36' -H 'Referer: https://qiita.com/search?q=devtool' --compressed
`````
**ちなみに**
レスポンスタイムを取得したい場合、以下のオプションを指定すればレスポンスタイムだけ表示させることができます！
便利！

```
-s -o /dev/null -w  "%{time_starttransfer}\n"
```
[何故 curl を使うか](https://qiita.com/yuya_takeyama/items/baf48a3f643e743a46b4#curl-%E3%81%A7%E3%83%AC%E3%82%B9%E3%83%9D%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B) より


## ショートカットキー
- Setting: `⌘ command` + `F1`
- DOMの変更: `F2`
- NODEの表示/非表示: `h`
- Consoleドロワー表示/非表示: `esc`
- DevToolの表示位置をかえる（Dockの表示切り替え）: `⌘ command` + `⇧ shift` + `d`
- デバイスの切り替え: `⌘ command` + `⇧ shift` + `m`
- [その他](https://developers.google.com/web/tools/chrome-devtools/shortcuts?hl=ja)


---
_参考_
https://developers.google.com/web/updates/2016/04/devtools-digest-command-menu
https://developers.google.com/web/tools/chrome-devtools/javascript/