Chrome での JavaScript のデバッグ
IntelliJ IDEA は、client-side JavaScript コード用の組み込みデバッガーを提供します。
以下の手順では、このデバッガーの使用を開始するための基本的な手順を説明します。
始める前に
設定で JavaScript と TypeScript バンドルプラグインが有効になっていることを確認します。Ctrl+Alt+S を押して設定を開き、 を選択します。インストール済みタブをクリックします。検索フィールドに JavaScript と TypeScript と入力します。プラグインの詳細については、プラグインのマッピングを参照してください。
設定で JavaScript デバッガーバンドルプラグインが有効になっていることを確認します。Ctrl+Alt+S を押して設定を開き、 を選択します。インストール済みタブをクリックします。検索フィールドに JavaScript デバッガーと入力します。プラグインの詳細については、プラグインのマッピングを参照してください。
JavaScript デバッガーの構成の説明に従って、組み込みデバッガーを構成します。
HTML、CSS、JavaScript コードに加えた変更を、ページを再ロードせずにブラウザーにすぐに表示するには、ライブ編集機能をアクティブにします。ライブ編集機能の詳細については、「HTML、CSS、JavaScript でのライブ編集」を参照してください。
組み込みサーバーで実行されているアプリケーションをデバッグする
IntelliJ IDEA には、Web ブラウザーまたは IDE の組み込みブラウザーでアプリケーションをプレビューおよびデバッグするために使用できる Web サーバーが組み込まれています。このサーバーは常に実行されており、手動による構成は必要ありません。
デバッグを開始する
必要に応じて、JavaScript コードにブレークポイントを設定します。
JavaScript を参照する HTML ファイルを開き、プロジェクトツールウィンドウの HTML ファイルをデバッグまたは選択します。
エディターのコンテキストメニューまたは選択から、デバッグ <HTML_ ファイル名> を選択します。IntelliJ IDEA はデバッグ構成を生成し、それを通してデバッグセッションを開始します。ファイルがブラウザーで開き、デバッグツールウィンドウが表示されます。
デバッグツールウィンドウで、通常どおりに処理を進めます。プログラムをステップ実行し、プログラムの実行を停止して再開し、中断されたときにプログラムを調べ、実際の HTML DOM を表示し、コンソールで JavaScript コードスニペットを実行します。
サンプル
index.html ファイルと index.js ファイルで構成され、index.html が index.js を参照する単純なアプリケーションがあるとします。
組み込みサーバーを使用してこのアプリケーションのデバッグを開始するには、index .js にブレークポイントを設定し、エディターで index .html を開き、コンテキストメニューから を選択します。
![エディターからデバッグセッションを開始する Start debugging session from the editor](https://resources.jetbrains.com/help/img/idea/2024.1/ws_quick_start_debug_built_in_server_1.png)
IntelliJ IDEA は実行 / デバッグ構成を自動的に作成し、デバッグセッションが開始します。
![デバッグセッションが開始され、ブラウザーでアプリが開く Debugging session starts, the app opens in the browser](https://resources.jetbrains.com/help/img/idea/2024.1/ws_quick_start_debug_built_in_server_2.png)
新しい実行 / デバッグ構成を再起動するには、リストからそれを選択し、 をクリックします。
![デバッグセッションを再開する Restart debugging session](https://resources.jetbrains.com/help/img/idea/2024.1/ws_quick_start_debug_built_in_server_3.png)
ブラウザーで現在のページを再ロードする
デバッグツールウィンドウの再実行ボタン () をクリックしてアプリケーションを再起動するほかに、ブラウザーで再ロードアクションを使用して、現在移動しているページを再ロードすることもできます。これは、Chrome のページの再ロード機能 (Ctrl+R) と同じように機能します。
現在のページを再ロードするには、ツールバーの
をクリックし、ブラウザーで再ロード (
) を選択します。
以下の例は、2 つの HTML ページと JavaScript スクリプトで構成される単純なアプリケーションを示しています。開始 home.html ページにはサブミットボタンがあり、これを押すと calculator.html ページが開き、Calculator.js スクリプトの実行結果が表示されます。
デバッグセッション中に、再実行ボタン () をクリックすると、サブミットボタンを含む home.html ページが再ロードされます。ブラウザーで再ロードボタン (
) をクリックすると、calculator.html ページが再ロードされ、以前のスクリプト出力がすべてクリアされ、デバッガーは Calculator.js の 1 行目に戻ります。
![Reloading the current page in browser](https://resources.jetbrains.com/help/img/idea/2024.1/ws_js_debug_reload_in_browser.png)
開発モードでローカルホスト上で実行されているアプリケーションをデバッグする
アプリケーションが localhost
の開発モードで実行されている場合、組み込みのターミナル(Alt+F12)、実行ツールウィンドウ、デバッグツールウィンドウからデバッグを開始できます。Ctrl+Shift を押したまま、アプリケーションが実行されている URL をクリックしてください。
![Starting a debugging session from the Run tool window](https://resources.jetbrains.com/help/img/idea/2024.1/ws_js_start_debugging_from_run_tool_window.png)
コードにブレークポイントを設定します。
たとえば、npm スクリプトを使用して、アプリケーションを開発モードで起動します。
実行ツールウィンドウまたはターミナルには、アプリケーションが実行されている URL が表示されます。Ctrl+Shift を押したまま、この URL リンクをクリックします。IntelliJ IDEA は、タイプ JavaScript デバッグの自動生成された 構成でデバッグセッションを開始します。
リモート Web サーバー上で実行されているアプリケーションをデバッグする
外部の開発 Web サーバー上で実行されているアプリケーションのクライアント側 JavaScript をデバッグしたい場合がよくあります。
リモート Web サーバーとは何ですか?
IntelliJ IDEA では、現在のプロジェクトの外側にドキュメントルートを持つサーバーはすべてリモートと呼ばれます。このサーバーは実際には物理的なリモートホストまたはあなたのマシン上で実行されているかもしれません。
例: プロジェクトが C:/IntelliJ IDEAProjects/MyProject にあり、Web サーバーのドキュメントルートが C:/XAMPP/htdocs である場合、IntelliJ IDEA では、この Web サーバーはリモートです。
サーバー上のアプリケーションソースを IntelliJ IDEA プロジェクト内のローカルコピーと同期するにはどうすればよいですか?
リモート Web サーバーでアプリケーションをデバッグするには、そのソースのコピーを IntelliJ IDEA プロジェクトに含める必要があります。ローカルソースとリモートソースを同期するには、リモートサーバー構成を作成するおよび Web サーバーに接続する説明に従ってデプロイ構成を作成します。
リモート Web サーバーでアプリケーションをデバッグする
必要に応じて、JavaScript コードにブレークポイントを設定します。
JavaScript デバッグタイプの実行 / デバッグ構成を作成します。
実行構成の編集ダイアログで、開いた実行構成の編集ダイアログで、ツールバーの追加ボタン (
に移動し、) をクリックし、リストから JavaScript デバッグを選択します。
開いた実行 / デバッグ構成: JavaScript デバッグダイアログで、アプリケーションが実行されている URL アドレスを指定します。この URL アドレスは、Web サーバールート URL と、サーバーアクセス構成に従って、Web サーバーのドキュメントルートを基準とした HTML ファイルへのパスを連結したものである必要があります。詳細については、Web サーバーに接続するを参照してください。
OK をクリックして構成設定を保存します。
ツールバーの実行 / デバッグ構成を選択リストで新しく作成した構成を選択し、デバッグボタン
をクリックします。実行構成で指定された HTML ファイルが選択したブラウザーで開き、デバッグツールウィンドウが表示されます。
デバッグツールウィンドウで、通常どおりに処理を進めます。プログラムをステップ実行し、プログラムの実行を停止して再開し、中断されたときにプログラムを調べ、実際の HTML DOM を表示し、コンソールで JavaScript コードスニペットを実行します。
サンプル: マッピングなしでデバッグする
index.html ファイルと App.js ファイルで構成される単純なアプリケーションがあるとします。index.html は App.js を参照します。
次に、単純なアプリケーションをローカル Web サーバーにデプロイしましょう ( デプロイを参照)。次の例では、Apache です。
この例のように Nginx や Apache などのローカル Web サーバーを使用する場合、または Web サーバーがリモートホスト上にある場合は、JavaScript デバッガーを起動するための実行 / デバッグ構成を作成する必要があります。これを行うには、IntelliJ IDEA ウィンドウの右上隅にあるリストをクリックして実行構成の編集を選択します。あるいは、メインメニューから を選択します。
実行 / デバッグ構成ダイアログで、
をクリックし、リストから JavaScript デバッグを選択します。
実行中のアプリケーションの URL を指定します。この例では
http://localhost:8888/MySimpleApp/index.html
ですこの例では、ローカルプロジェクト構造とサーバー上のファイル構造は同じであるため、マッピングは必要ありません。
これでデバッグを開始できます: IntelliJ IDEA ウィンドウの右上隅にあるリストから新しい実行 / デバッグ構成を選択し、
をクリックします。
デバッグツールウィンドウで、通常どおりに処理を進めます。プログラムをステップ実行し、プログラムの実行を停止して再開し、中断されたときにプログラムを調べ、実際の HTML DOM を表示し、コンソールで JavaScript コードスニペットを実行します。
マッピング
マッピングは、Web サーバー上のファイルとそのローカルコピー間の対応を設定します。マッピングが必要です:
アプリケーションがリモート Web サーバーにデプロイされて実行されているとき。
プロジェクトルートに加えていくつかのリソースルートフォルダーを定義した場合。
IntelliJ IDEA は、デプロイ構成から、またはファイルとスクリプトの名前と内容に基づいてパスマッピングを推測しようとします。ただし、アプリケーションの構造が複雑な場合は、パスマッピングを手動で指定する必要があります。
マッピングを構成する
アプリケーションのデバッグの説明に従って、タイプ JavaScript デバッグのデバッグ構成を作成します。
ローカルファイルのリモート URL 領域で、現在使用されているデプロイ構成に従って、ファイルとフォルダーをサーバー上のファイルとフォルダーの URL アドレスにマップします。 ローカルフォルダーをサーバー上のフォルダーにマップし、URL アドレスにアクセスしてアクセスするを参照してください。
サンプル: マッピングを使用してデバッグする
何らかの理由で、アプリケーションのフォルダー構造を前の例から変更し、index.html と App.js を別のフォルダー src に移動することにしたとします。
![ローカルフォルダーの構造は、リモート Web サーバー上のフォルダー構造とは異なります The structure of local folders differs from the folder structure on the remote web server](https://resources.jetbrains.com/help/img/idea/2024.1/ws_js_debug_on_remote_server_example_mappings_1.png)
ローカルソースと Web サーバー上のアプリケーションは構造が異なるため、デバッガーはローカルソースと実際に実行されるコードを同期できません。
この問題を解決するには、アプリケーションルートの URL アドレスを src フォルダーにマップしましょう。
その他のデバッグ例については、WebStorm ブログの投稿 React アプリケーションのデバッグ(英語)および Angular アプリケーションのデバッグ(英語)を参照してください。
非同期コードをデバッグする
IntelliJ IDEA は非同期のクライアントサイド JavaScript コードのデバッグをサポートします。IntelliJ IDEA は非同期コード内のブレークポイントを認識し、停止して、そのようなコードにステップインすることを可能にします。非同期関数内のブレークポイントがヒットするか、非同期コードにステップインするとすぐに、新しい要素 Async call from <caller>
がデバッガータブのフレームペインに追加されます。IntelliJ IDEA は、呼び出し元と非同期アクションの開始までの全経路を含む、完全な呼び出しスタックを表示します。
![Debugging asynchronous JavaScript code](https://resources.jetbrains.com/help/img/idea/2024.1/ws_debug_tool_window_async.png)
上の例では、デバッガーは line3(ブレークポイント) で停止し、次に line5(ブレークポイント) で停止します。ステップインをクリックすると、デバッガーは行 5 ( function
上) で停止し、その後行 6 に移動します。
非同期デバッグモードは、デフォルトでオンになっています。非同期スタックトレースを無効にするには、レジストリの js.debugger.async.call.stack.depth
を 0
に設定します。
ワーカーをデバッグする
IntelliJ IDEA は、サービスワーカー(英語)および Web ワーカーのデバッグをサポートしています。IntelliJ IDEA は、各ワーカーのブレークポイントを認識し、そのデバッグデータをデバッグツールウィンドウのデバッガータブのフレームペインに個別のスレッドとして表示します。
IntelliJ IDEA は専用のワーカーのみをデバッグできることに注意してください。現在、共有ワーカーのデバッグはサポートされていません。
デバッグするワーカーにブレークポイントを設定します。
サービスワーカーを使用している場合は、デバッガーページ( )で署名されていない要求を許可するチェックボックスが選択されていることを確認してください。そうしないと、デバッグセッション中にサービスワーカーが使用できなくなる可能性があります。
外部 Web サーバー上で実行されているクライアント側の JavaScript のデバッグで前述したように、タイプ JavaScript デバッグのデバッグ構成を作成します。
ツールバーの実行 / デバッグ構成を選択リストから、新しく作成した 構成を選択し、その横にある
をクリックします。
実行構成で指定された HTML ファイルがブラウザーで開き、デバッグツールウィンドウが開き、使用可能なすべてのワーカーを示すフレームリストが表示されます。
ワーカーのデータ(変数、ウォッチなど)を調べるには、リストでそのスレッドを選択し、変数ペインと監視式ペインでそのデータを表示します。別のワーカーを選択すると、それに応じてペインの内容が更新されます。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/plugins_settings.png)
プラグインのインストール
プラグインは IntelliJ IDEA のコア機能を拡張します。例: プラグインをインストールして、次の機能を取得します。バージョン管理システム、課題追跡システム、ビルド管理サーバー、その他のツールとの統合。さまざまな言語とフレームワークのコーディング支援サポート。ショートカットのヒント、ライブプレビュー、ファイルウォッチャーなど。新しいプログラミング言語を学ぶのに役立つコーディング演習。プラグイン設定を開くを押して設定を開き、を選択します。マーケットプレースタブを使用して、JetBrains...
![](https://resources.jetbrains.com/help/img/idea/2024.1/js_debugger_before_you_start_plugins.png)
JavaScript デバッガーの構成
IntelliJ IDEA は、client-sideJavaScript コード用の組み込みデバッガーを提供します。デバッグセッションを開始すると、ビルトインデバッガーが自動的に起動します。デバッグが正常に行われるようにするには、組み込みの Web サーバーポートを指定して、IntelliJ IDEA が他のデバッガーオプションに提案しているデフォルト設定を受け入れるだけで十分です。始める前に設定で JavaScript と TypeScript バンドルプラグインが有効になっていることを確認しま...
![](https://pleiades.io/icons/idea.png)
HTML、CSS、JavaScript でのライブ編集
ライブ編集機能を使用すると、HTML、CSS、JavaScript コードに加えた変更は、ページを再ロードせずにブラウザーにすぐに表示されます。ライブ編集は、HTML、CSS、JavaScript を含む、または生成する他のファイルタイプに対して機能します。Node.js アプリケーションのデバッグのときにライブ編集を使用することもできます。詳細については、「Node.js アプリケーションでのライブ編集」を参照してください。デフォルトでは、ライブ編集は HTML および CSS ファイルに対し...
![](https://resources.jetbrains.com/help/img/idea/2024.1/debug_method_breakpoint_menu.png)
ブレークポイント
ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、たとえば、特定のコード行に到達したときにプログラムを一時停止するなどの単純なものから、追加の条件をチェックしたり、ログに書き込んだりするなどのより複雑なロジックを含むものまであります。ブレークポイントは、一度設定すると、一時的なブレークポイントを除き、明示的に削除するまでプロジェクト内に残ります。ブレークポイントの種類:Intell
![](https://resources.jetbrains.com/help/img/idea/2024.1/project-tool-window.png)
プロジェクトツールウィンドウ
プロジェクトツールウィンドウでは、様々な視点からプロジェクトを見て、新しいアイテム(ディレクトリ、ファイル、クラスなど)の作成、エディターでのファイルのオープン、必要なコードフラグメントへの移動など、様々なタスクを実行することができます。ビュー:ツールウィンドウにはいくつかのビューがあります。プロジェクトビュー。このビューには、すべてのプロジェクトアイテムとその依存関係(SDK およびライブラリ)が表示されます。パッケージも示されていますが、ディレクトリ構造に重点が置かれています。パッケージビ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/debug_overview.png)
デバッグツールウィンドウ
デバッガーセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ(フレーム、スレッド、変数など)を表示して分析し、さまざまなデバッガーアクションを実行します。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。ツールウィンドウのタブを切り替えるには、とを押します。セッション:使用可能なデバッグセッションは、デバッグツールウィンド