Chrome での JavaScript のデバッグ
CLion は、 client-side JavaScript コード用の組み込みデバッガーを提供します。
始める前に
設定で JavaScript and TypeScript バンドルプラグインが有効になっていることを確認します。 Ctrl+Alt+S を押して設定を開き、 を選択します。 インストール済み タブをクリックします。 検索フィールドに JavaScript and TypeScript と入力します。 プラグインの詳細については、 プラグインの管理 を参照してください。
設定で JavaScript Debugger バンドルプラグインが有効になっていることを確認します。 Ctrl+Alt+S を押して設定を開き、 を選択します。 インストール済み タブをクリックします。 検索フィールドに JavaScript デバッガー と入力します。 プラグインの詳細については、 プラグインの管理 を参照してください。
JavaScript デバッガーの構成 の説明に従って、組み込みデバッガーを構成します。
HTML、CSS、JavaScript コードに加えた変更を、ページを再ロードせずにブラウザーにすぐに表示するには、 ライブ編集機能をアクティブにします。 ライブ編集機能の詳細については、 HTML、CSS、JavaScript でのライブ編集 を参照してください。
組み込みサーバーで実行されているアプリケーションをデバッグする
CLion には Web サーバーが内蔵されており、Web ブラウザーでアプリケーションをデバッグしたり、CLion 内蔵ブラウザーでコードをプレビューしたりできます。 このサーバーは常に実行されており、手動による構成は必要ありません。
デバッグを開始する
必要に応じて、JavaScript コードに ブレークポイントを設定します。
デバッグする JavaScript を参照する HTML ファイルを開くか、 プロジェクトツールウィンドウで HTML ファイルを選択します。
エディターのコンテキストメニューまたは選択から、 デバッグ <HTML_file_name> を選択します。 CLion はデバッグ構成を生成し、それを通じてデバッグセッションを開始します。 ファイルがブラウザーで開き、 デバッグツールウィンドウが表示されます。
デバッグ ツールウィンドウで、通常どおり操作を続けます: プログラムをステップ実行、 実行を停止・再開、 中断時の調査 、コールスタックと変数の確認、ウォッチの設定、変数の評価、 実際の 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 を開き、コンテキストメニューから を選択します。

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

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

ブラウザーで現在のページを再ロードする
デバッグ ツールウィンドウの 再実行 ボタン () をクリックしてアプリケーションを再起動するほかに、 ブラウザーで再ロード アクションを使用して、現在移動しているページを再ロードすることもできます。 これは、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 リンクをクリックします。 CLion は自動生成された 構成で、タイプ JavaScript Debug のデバッグセッションを開始します。
新しいターミナルから開発モードでアプリケーションを起動した場合は、リンクの横にある ブラウザーでデバッグを開始する ボタンをクリックするだけです。

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

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

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

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

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

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

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

ワーカーのデータ(変数、ウォッチなど)を調べるには、リストでそのスレッドを選択し、 変数 ペインと ウォッチ式 ペインでそのデータを表示します。 別の ワーカーを選択すると、それに応じてペインの内容が更新されます。
Chrome 拡張機能をデバッグする
CLion で Chrome 拡張機能をデバッグするには、 Node.js / 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 タブに移動します。
CLion に切り替えます。 デバッグ ツールウィンドウで、 ブレークポイントをステップ実行 、フレームの切り替え、値のオンザフライ変更、 中断中のプログラムの調査、 式の評価、 ウォッチの設定などが可能です。
