当サイトは、アフィリエイト広告を利用しています
Dockerコンテナ上に構築したReactプロジェクトの
デバッグをVScodeから行う方法をまとめる。
Dockerコンテナ上にReact実行環境を
構築する方法については下記
今回はこの環境でVScodeでデバッグをしてみる。
※使うブラウザはGoogle Chrome
VScodeではデバッグする際はデバッグ設定用のファイルである
を作る必要がある。
またデバッグ開始前に事前にReactプロジェクトを動かす必要がある
これは
を使って行う。
流れ的にはデバッグを起動させると
launch.json内からtask.jsonを実行し、Reactプロジェクトを
起動後にアタッチするような感じ。
VScodeのデバッグの設定ファイルであるlaunch.jsonを作る
設定は下記を設定する
{"version": "0.2.0","configurations": [{"type": "chrome","request": "launch","preLaunchTask": "npm: start","name": "React Debug","url": "http://localhost:3000",},]}
デバッグ構成のタイプを設定する
Google Chrome ブラウザでのデバッグなので「chrome」を設定する
デバッガに対する要求の種類。 ローカルで実行中のアプリケーションをデバッグするので「launch」を設定する
デバッグの前に実行されるタスクを指定できる。
ここでは「npm: start」のタスクを指定。
※tasks.jsonのlabelと一致させる必要がある
デバッグ構成の名前。
アプリケーションの起動先URL
launch.jsonのpreLaunchTaskで設定したタスクを作る
task.jsonはF1でコマンドパレットを開いて「タスク:タスクの構成」
で作れる。
自動でtask.jsonが作成されるので
下記に書き換える
{"version": "2.0.0","tasks": [{"type": "npm","script": "start","label": "npm: start","detail": "react-scripts start","isBackground": true,"problemMatcher": {"owner": "custom","pattern": {"regexp": "ˆ$"},"background": {"activeOnStart": true,"beginsPattern": "^Compiling...","endsPattern": "^Compiled successfully."}}}]}
タスクの種類。ここではnpmを指定
実行されるnpmスクリプト
ここではstartを指定。
※package.jsonの"scripts"で設定しているものを
設定する
人が読み取り可能なタスクのラベル
launch.jsonではこの値を見ている。
タスクに関する追加の詳細情報
タスクがバックグラウンドで実行されるかどうかを設定。
trueの場合タスクがバックグラウンドで実行され、
VSCodeでの作業を妨げずに開発サーバーが実行される
タスクの出力から問題を検出し、表示するための正規表現パターンを指定する
が、設定がよくわからない。
ただ何も書かないとデバッグ実行時にVScodeに怒られるので
一旦、正規表現パターンを空にしておく。
つまり、実際には何も問題を検出しない。。。
「isBackground」が「true」に設定されている場合、VScodeはタスクがいつ終了したのかを知るために
タスクの出力から特定のパターンを検出する必要がある
※要はいつタスクがいつ始まって、いつ終わったのか知りたい。
このパターンはbackgroundプロパティで設定する。
「Compiling...」というメッセージが出力されたときにタスクが開始され、
「Compiled successfully.」というメッセージが出力されたときにタスクが
終了したとみなされるように設定する。
最終的には下記のような構成になる。
.├── .vscode│ ├── launch.json│ └── tasks.json├── README.md├── docker│ ├── Dockerfile│ ├── docker-compose.yml│ └── vscode_ex_install.sh├── package-lock.json├── package.json├── src│ ├── App.css│ ├── App.test.tsx│ ├── App.tsx│ ├── index.css│ ├── index.tsx│ ├── logo.svg│ ├── react-app-env.d.ts│ ├── reportWebVitals.ts│ └── setupTests.ts└── tsconfig.json
※node_modules等のファイルは省略してます。
作成したのは下記の2つ
設定が終わったので実際にデバッグできるか確認する
dockerコンテナ環境のReactをVScodeでデバッグするため
のVScodeの設定方法まとめた。
基本的にはローカルでの設定とあまり変わらない感じだった。
VSCodeのlaunch.jsonとtask.jsonはまだあまり
使ったことがないので、これを機に使えるようしたい。