Chrome での JavaScript のデバッグ
PhpStorm は、 クライアントサイド JavaScript コード用の組み込みデバッガーを提供します。
以下の手順では、このデバッガーを使い始めるための基本的な手順について説明します。
始める前に
設定で JavaScript and TypeScript バンドルプラグインが有効になっていることを確認します。 Ctrl+Alt+S を押して設定を開き、 を選択します。 インストール済み タブをクリックします。 検索フィールドに JavaScript and TypeScript と入力します。 プラグインの詳細については、 プラグイン管理を参照してください。
設定で JavaScript Debugger バンドルプラグインが有効になっていることを確認します。 Ctrl+Alt+S を押して設定を開き、 を選択します。 インストール済み タブをクリックします。 検索フィールドに JavaScript デバッガー と入力します。 プラグインの詳細については、 プラグイン管理を参照してください。
JavaScript デバッガーの構成 の説明に従って、組み込みデバッガーを構成します。
HTML、CSS、JavaScript コードに加えた変更を、ページを再ロードせずにブラウザーにすぐに表示するには、 ライブ編集機能をアクティブにします。 ライブ編集機能の詳細については、 HTML、CSS、JavaScript でのライブ編集 を参照してください。
組み込みサーバーで実行されているアプリケーションをデバッグする
PhpStorm には Web サーバーが内蔵されており、Web ブラウザーでアプリケーションをデバッグしたり、PhpStorm の内蔵ブラウザーでコードをプレビューしたりできます。 このサーバーは常に稼働しており、手動での設定は不要です。
デバッグを開始する
必要に応じて、JavaScript コードに ブレークポイントを設定します。
デバッグしたい JavaScript を参照している HTML ファイルを開くか、 プロジェクトツールウィンドウで HTML ファイルを選択します。
エディターのコンテキストメニューまたは選択から、 デバッグ <HTML_ファイル名> を選択します。 PhpStorm はデバッグ構成を生成し、それを通じてデバッグセッションを開始します。 ファイルがブラウザーで開き、 デバッグツールウィンドウが表示されます。
デバッグ ツールウィンドウで、通常どおり進めます: プログラムをステップ実行、 一時停止・再開、 中断時の確認 、コールスタック・変数探索、ウォッチ設定、変数評価、 HTML DOM の閲覧などです。
サンプル
debug_from_run.html ファイルと debug_from_run.js ファイルで構成され、 debug_from_run.html が debug_from_run.js を参照する単純なアプリケーションがあるとします。
組み込みサーバーを使用してこのアプリケーションのデバッグを開始するには、 debug_from_run.js にブレークポイントを設定し、エディターで debug_from_run.html を開き、コンテキストメニューから を選択します。

PhpStorm は 実行 / デバッグ構成を自動的に作成し、デバッグセッションが開始します。

新しい実行 / デバッグ構成を再起動するには、リストからそれを選択し、 をクリックします。

ブラウザーで現在のページを再ロードする
デバッグ ツールウィンドウの 再実行 ボタン () をクリックしてアプリケーションを再起動するほかに、 ブラウザーで再ロード アクションを使用して、現在移動しているページを再ロードすることもできます。 これは、Chrome の ページの再ロード機能 (Ctrl+R) と同じように機能します。
現在のページを再ロードするには、ツールバーの
をクリックし、 ブラウザーで再ロード (
) を選択します。

以下の例は、2 つの HTML ページと JavaScript スクリプトで構成される単純なアプリケーションを示しています。 開始 home.html ページには 送信 ボタンがあり、これを押すと calculator.html ページが開き、 Calculator.js スクリプトの実行結果が表示されます。
デバッグセッション中に、 再実行 ボタン () をクリックすると、 送信 ボタンを含む home.html ページが再ロードされます。 ブラウザーで再ロード ボタン (
) をクリックすると、 calculator.html ページが再ロードされ、以前のスクリプト出力がすべてクリアされ、デバッガーは Calculator.js の 1 行目に戻ります。

開発モードでローカルホスト上で実行されているアプリケーションをデバッグする
アプリケーションが開発モードで localhost 上で実行されている場合、組み込みの ターミナル (Alt+F12)、 実行ツールウィンドウ 、または デバッグツールウィンドウ からデバッグを開始できます。 Ctrl+Shift を押したまま、アプリケーションが実行されている URL をクリックしてください。
コードに ブレークポイントを設定します。
たとえば、npm スクリプトを利用して、アプリケーションを開発モードで起動します。
実行 ツールウィンドウまたは ターミナル には、アプリケーションが実行されている URL が表示されます。 Ctrl+Shift を押したまま、この URL リンクをクリックします。 PhpStorm は自動生成された 構成(種類 JavaScript Debug )でデバッグセッションを開始します。

リモート Web サーバー上で実行されているアプリケーションをデバッグする
外部開発 Web サーバーで実行されているアプリケーションのクライアントサイド JavaScript をデバッグしたい場合もよくあります。
リモート Web サーバーとは何ですか?
PhpStorm では、現在のプロジェクト外の ドキュメントルートを持つサーバーは リモートと呼ばれます。 このサーバーは実際には物理的なリモートホストまたはあなたのマシン上で実行されているかもしれません。
たとえば、プロジェクトが C:/IntelliJ IDEAProjects/MyProject にあり、Web サーバーのドキュメントルートが C:/XAMPP/htdocs である場合、PhpStorm ではこの Web サーバーは リモートです。
サーバー上のアプリケーションソースを PhpStorm プロジェクト内のローカルコピーと同期するにはどうすればよいですか?
リモートWeb サーバー上のアプリケーションをデバッグするには、そのソースのコピーを PhpStorm プロジェクトに用意する必要があります。 ローカルとリモートのソースを同期するには、 デプロイ構成を リモートサーバー構成を作成する および Web サーバーに接続する で説明されているように作成します。
リモート Web サーバーでアプリケーションをデバッグする
必要に応じて、JavaScript コードに ブレークポイントを設定します。
JavaScript デバッグ タイプの実行 / デバッグ構成を作成します。
に移動し、 実行構成の編集 ダイアログで、開いた 実行構成の編集 ダイアログで、ツールバーの 追加 ボタン (
) をクリックし、リストから JavaScript デバッグ を選択します。
開いた 実行 / デバッグ構成: JavaScript デバッグダイアログで、アプリケーションが実行されている URL アドレスを指定します。 この URL アドレスは、 Web サーバールート URL と、 サーバーアクセス構成に従って、Web サーバーのドキュメントルートを基準とした HTML ファイルへのパスを連結したものである必要があります。 詳細については Web サーバーに接続する を参照してください。
OK をクリックして構成設定を保存します。
ツールバーの 実行 / デバッグ構成を選択 リストで新しく作成した構成を選択し、 デバッグ ボタン
をクリックします。 実行構成で指定された HTML ファイルが選択したブラウザーで開き、 デバッグツールウィンドウが表示されます。
デバッグ ツールウィンドウで、通常どおり進めます: プログラムをステップ実行、 一時停止・再開、 中断時の確認 、コールスタック・変数探索、ウォッチ設定、変数評価、 HTML DOM の閲覧などです。
サンプル: マッピングなしでデバッグする
次のような単純なアプリケーションがあり、 index.html ファイルと App.js ファイルで構成され、 index.html が App.js を参照します。
次に、シンプルなアプリケーションをローカル Web サーバーにデプロイします。詳細は デプロイ を参照してください。 次の例では、Apache です。

この例のように Nginx や Apache などのローカル Web サーバーを使用する場合、または Web サーバーがリモートホスト上にある場合は、JavaScript デバッガーを起動するための実行 / デバッグ構成を作成する必要があります。 これを行うには、PhpStorm ウィンドウ右上のリストをクリックし、 実行構成の編集 を選択します。 あるいは、メインメニューから を選択します。

実行 / デバッグ構成 ダイアログで、
をクリックし、リストから JavaScript デバッグ を選択します。

実行中のアプリケーションの URL を指定します。この例では
http://localhost:8888/MySimpleApp/index.htmlです。
この例では、ローカルプロジェクト構造とサーバー上のファイル構造が同じなので、マッピングは不要です。
これでデバッグを開始できます:PhpStorm ウィンドウ右上のリストから新しい実行/デバッグ構成を選択し、
をクリックします:

デバッグ ツールウィンドウで、通常どおり進めます: プログラムをステップ実行、 一時停止・再開、 中断時の確認 、コールスタック・変数探索、ウォッチ設定、変数評価、 HTML DOM の閲覧などです。
マッピング
マッピングは、Web サーバー上のファイルとそのローカルコピー間の対応を設定します。 マッピングが必要です:
アプリケーションが リモート Web サーバーにデプロイされて実行されているとき。
プロジェクトルートに加えていくつかのリソースルートフォルダーを定義した場合。
PhpStorm は デプロイ構成やファイル名、スクリプト名、内容に基づいてパスマッピングを推測します。 ただし、アプリケーション構造が複雑な場合は、パスマッピングを手動で指定する必要があります。
マッピングを構成する
アプリケーションのデバッグの説明に従って、タイプ JavaScript デバッグのデバッグ構成を作成します。
ローカルファイルのリモート URL 領域で、現在使用されている デプロイ構成に従って、ファイルとフォルダーをサーバー上のファイルとフォルダーの URL アドレスにマップします。 ローカルフォルダーをサーバー上のフォルダーにマップし、URL アドレスにアクセスしてアクセスするを参照してください。
サンプル: マッピングを使用してデバッグする
何らかの理由で、アプリケーションのフォルダー構造を 前の例から変更し、 index.html と App.js を別のフォルダー src に移動することにしたとします。

ローカルソースと Web サーバー上のアプリケーションは構造が異なるため、デバッガーはローカルソースと実際に実行されているコードの同期ができません。
この問題を解決するには、アプリケーションルートの URL アドレスを src フォルダーにマップしましょう。
その他のデバッグ例については、WebStorm ブログの投稿 React アプリケーションのデバッグ(英語)および Angular アプリケーションのデバッグ(英語)を参照してください。
Code with Me セッションでデバッグ
一緒にコードセッション中にデバッグを開始することもできます。 ホストとして操作するか クライアントとして操作するかに関係なく、デバッグセッションを開始した側でブラウザーが開きます。
非同期コードをデバッグする
PhpStorm は非同期クライアントサイド JavaScript コードのデバッグをサポートします。 PhpStorm は非同期コード内のブレークポイントを認識し、停止、ステップインすることができます。 非同期関数内のブレークポイントがヒットするか、非同期コードにステップインするとすぐに、新しい要素 Async call from <caller> が デバッガー タブの フレーム ペインに追加されます。 PhpStorm は呼び出し元や非同期アクションの最初までを含むフルコールスタックを表示します。

上の例では、デバッガーは line3(ブレークポイント) で停止し、次に line5(ブレークポイント) で停止します。 ステップイン をクリックすると、デバッガーは行 5 (function 上) で停止し、その後行 6 に移動します。
非同期デバッグモードは、デフォルトでオンになっています。 非同期スタックトレースを無効にするには、 レジストリの js.debugger.async.call.stack.depth を 0 に設定します。
ワーカーをデバッグする
PhpStorm は サービスワーカーおよび Web ワーカーのデバッグをサポートします。 PhpStorm は各 ワーカーのブレークポイントを認識し、そのデバッグデータを デバッガー タブの フレーム ペインの個別スレッドとして デバッグツールウィンドウに表示します。
PhpStorm は 専用のワーカーのみをデバッグできることに注意してください。現在、 共有ワーカーのデバッグはサポートされていません。
デバッグする ワーカーに ブレークポイントを設定します。
Service Workersを使用している場合は、 デバッガーページ( )で 署名されていない要求を許可する チェックボックスが選択されていることを確認してください。 そうし ないと、デバッグセッション中にサービスワーカーが使用できなくなる可能性があります。
外部 Web サーバー上で実行されているクライアント側の JavaScript のデバッグで前述したように、タイプ JavaScript デバッグのデバッグ構成を作成します。
ツールバーの 実行 ウィジェットリストから、新しく作成した 構成を選択し、その横にある
をクリックします。
実行構成で指定された HTML ファイルがブラウザーで開き、 デバッグツールウィンドウが開き、使用可能なすべての ワーカーを示す フレーム リストが表示されます。

ワーカーのデータ(変数、ウォッチなど)を調べるには、リストでそのスレッドを選択し、 変数 ペインと ウォッチ式 ペインでそのデータを表示します。 別の ワーカーを選択すると、それに応じてペインの内容が更新されます。
Chrome 拡張機能をデバッグする
PhpStorm では、 Node.js/Chrome にアタッチタイプの実行 / デバッグ構成を使って Chrome 拡張機能のデバッグができます。 Chrome は カスタム Chrome ユーザーデータプロファイルで起動する必要があります。詳細は 推奨する Chrome ユーザーデータでデバッグセッションを開始する をご覧ください。
Node.js/Chrome 実行 / デバッグ構成へのアタッチを作成する
に進みます。 または、ツールバーの 実行 ウィジェットから 実行構成の編集 を選択します。

開いた 実行構成の編集 ダイアログで、ツールバーの 追加 ボタン (
) をクリックし、リストから Node.js/Chrome への接続 を選択します。

実行/デバッグ構成:Node.js/Chrome への接続ダイアログが開きます。
構成名を指定し、事前定義されたホストとポートの値
localhost:9229を受け入れます。
適用 と OK をクリックして構成を保存し、ダイアログを閉じます。
Chrome を実行して拡張機能をロードする
コマンドラインから Chrome を実行する(英語)を使用して、リモートデバッグポートと Chrome ユーザーデータディレクトリ(英語)を指定します。
埋め込み ターミナル (Alt+F12 )を開いて、次のように入力します。
<path_to_chrome_executable> --remote-debugging-port=<port_specified_in_run_configuration> --user-data-dir=<your_Chrome_user_data_directory>開いた Chrome ウィンドウに 解凍した拡張機能をロードする(英語)を入力します。
デバッグを開始する
必要に応じて ブレークポイントを設定します。
ツールバーの 実行 ウィジェットリストから、新しく作成した Node.js/Chrome への接続 構成を選択し、その横にある
をクリックします。

デバッグツールウィンドウが開きます。
拡張機能がロードされている Chrome タブに移動します。
PhpStorm に切り替えます。 デバッグ ツールウィンドウで、 ブレークポイントをステップスルーし、フレームを切り替え、値をオンザフライで変更し、 中断されたプログラムを調べ、式を 評価し、 ウォッチを設定します。
