素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

投稿日: 2019年6月18日
最終更新日:

【VSCoe】VisualStudioCodeでDockerのNode.jsにリモートデバッグしてみよう【Nust.js/Vue.js】

YouTubeも見てね♪

【最新機種】GoPro hero11 Black

created by Rinker
GoPro(ゴープロ)
¥62,000 (2024/03/15 19:06:06時点 Amazon調べ-詳細)

最新機種でVlogの思い出を撮影しよう!

[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット

created by Rinker
THE NORTH FACE(ザノースフェイス)
¥29,280 (2024/03/15 19:06:01時点 Amazon調べ-詳細)

防水暴風で耐久性抜群なので旅行で大活躍です!

ペヤング ソースやきそば 120g×18個

created by Rinker
ペヤング
¥2,600 (2024/03/15 19:03:46時点 Amazon調べ-詳細)

とりあえず保存食として買っておけば間違いなし!

モンスターエナジー 355ml×24本 [エナジードリンク]

created by Rinker
モンスター
¥4,748 (2024/03/15 19:03:48時点 Amazon調べ-詳細)

脳を活性化させるにはこれ!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/03/15 19:03:48時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK

created by Rinker
Bauhutte(バウヒュッテ)
¥13,861 (2024/03/15 15:06:46時点 Amazon調べ-詳細)

メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!

BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール

created by Rinker
BANDAI SPIRITS(バンダイ スピリッツ)
¥7,180 (2024/03/15 15:06:46時点 Amazon調べ-詳細)

もう一人の僕を呼び覚ませ!!

Dockerコンテナ内のNuxt.jsをデバッグしてみよう

先日、Docker環境を用いたNuxt.jsの開発環境構築についてご紹介しました。

今回はVSCodeを用いたデバッグ方法についてご紹介したいと思います。

手順

前提

今回やりたいことは以下の通りです。

要件
  • VSCodeはホスト側のディレクトリを参照
  • Nuxt.jsはコンテナ側でデバッグ起動しているところにアタッチする
  • デバッガーを仕込み、ホスト側のChromeブラウザでアクセスした際にVSCode側で引っかかる

docker-compose.ymlにデバッグ用ポートの追加

まずは、docker-compose.ymlにデバッグで使用するポートを指定しましょう。

launch.jsonの作成

次にVSCodeのデバッグ起動用設定ファイルを用意しましょう。

package.jsonにデバッグ起動のタスクを追加

次は、package.jsonデバッグ起動するためのタスクを追加しましょう。

ポイントは、--inspect=0.0.0.0:9229の部分です。
ここを他の方の記事にあるように-inspect=9229だけでは、ホスト側からデバッグ接続出来ないので注意です。

確認

では、実際にデバッグしてみましょう。

まずは、コンテナ側でNuxt.jsをデバッグ起動しておきましょう。

正常にデバッグモードで起動出来ました!

Debugger listening on ws://0.0.0.0:9229/2a53a25c-c810-45f2-8f8c-06eb0a807023

この状態でChromeでchrome://inspect/#devices にアクセスすると、Remote TargetNuxt.jsが表示されていると思います。

これでデバッグ接続の準備は出来ました。

VSCodeからコンテナ内のNuxt.jsにアタッチ

では、実際にVSCodeからデバッグ接続してみましょう。

左のデバッグメニューから、先ほど作成した設定を選択して実行ボタンをクリックしましょう。

正常にアタッチ出来るとデバッグ用のツールバーが表示されます。

また、Nuxt.js側のサーバーログにもDebugger attached.と出力されます。

確認

では実際にデバッグをしてみましょう。

デバッグしたい行にdebuggerを埋め込みます。

この状態でブラウザからアクセスしてみましょう。

正常に仕込んだポイントで引っかかりました!!!

変数なども参照出来ます♪

もちろん、変数の値を変えて処理を続ける事も出来ます。

課題

一応、それっぽい事が出来るようになりましたが、いくつか課題が残っています。

未確認のブレークポイント(unverified breakpoint)

今回はdebuggerを仕込む事でデバッグする事が可能になりましたが、VSCodeのブレイクポイントではうまく動作しません。

どうやら、実行時のソースと編集時のソースの関連性がうまく設定出来ていないためブレイクポイントがうまく動作しないようです。

一応、next.config.jsconfig.devtool = '#source-map' を追加したりはしてみましたが、ダメでした。。。

debuggerを仕込む=ソースに手を加える事になるのであまりオススメはしない方法ですのでなんとか解決したいですね。orz

解決方法がわかったら追記か別記事にまとめます!!!

終わりに

以上のように、VSCode上でデバッグを行えるようになりました。

Dockerコンテナを使った開発をしている関係か、ちょっと特殊だったり動きが怪しい部分もあったりしますが、取り急ぎこれでデバッグは出来るので、お困りの方は試してみてください♪

CATEGORIES & TAGS

IT