ブレークポイントが機能しないWindows10およびWSL2のVisualStudioCodeを介したChromeでのReactアプリのデバッグ

39桁

今年のMSBuild会議と、Terminal 1.x、winget、その他の追加機能の発表の後、新しいラップトップ(Surface Book3またはMacBookPro ...それが問題です)を購入する前に、Windows10に別のテストを実行したいと思いました。 )。

問題

WSL2とVisualStudioCodeを使用してWindows10上のChromeでWebアプリをデバッグする場合、ブレークポイントが機能しません。デバッグセッションを実行すると、「ブレークポイントは設定されていますが、まだバインドされていません」というメッセージが表示されます。

MacOSでデバッグする場合、まったく同じアプリが問題なく動作します。

私のセットアップ

BootCampの下にインストールされたWindows10Proで最新バージョンのMacOSを実行しているMacBookPro。

Windows 10には、Ubuntu20.04を実行するWSL2があります。ターミナル1.xがインストールされ、Linuxコマンドラインにアクセスするために使用されます。

Visual Studio Codeは最新の1.45.1安定版リリースであり、Windows 10上のWSLリモート開発拡張機能(0.44.2)が含まれています。VSCodeはcode .、プロジェクトディレクトリ内で実行することにより、WSL2内から起動されます

Chrome拡張機能のデバッガーは4.12.8です

アプリケーション

このアプリケーションはデフォルトのCreateReact Appであり、ブレークポイントを割り当てるための小さな変更のみが含まれています。

私は実行することから始めます:

npx create-react-app sandbox

次にsrc/App.js、ブレークポイントテストとして使用するために、いくつかの任意の変数と割り当てを簡略化して追加しました。

App.jsファイルの内容。

import React from 'react';
import './styles/main.css';

function App() {
  const test = true;
  let temp = 9;
  temp = 10;
  return (
    <div>
      <h1>Breakpoint test</h1>
      <p>Did it work?</p>
    </div>
  );
}

export default App;

constlet作成行にブレークポイントを設定し、の再割り当てを行いtempます。

Create ReactAppエディターのセットアップドキュメントでlaunch.json推奨されている私のコンテンツ

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "chrome",
      "request": "launch",
      "name": "Launch Chrome",
      "url": "http://localhost:3000",
      "webRoot": "${workspaceFolder}/src",
      "sourceMapPathOverrides": {
        "webpack:///src/*": "${webRoot}/*"
      }
    }
  ]
}

Win10-デバッグセッションを実行するとどうなりますか?

を使用npm run startしてCreateReact Appを実行し、Launch Chromeデバッグ構成を実行すると、期待どおりにChromeが自動的に開きます。

残念ながら、ブレークポイントは無視され、Visual StudioCode内ではブレークポイントは塗りつぶされていない円として表示されます。表示されるメッセージはブレークポイントが設定されていますが、まだバインドされていません

MacOS-デバッグセッションを実行するとどうなりますか?

Chromeが開き、コントロールがVisual Studio Codeに戻り、ブレークポイント情報が表示されます(変数データ、コールスタックなど)。

Win10-Firefoxは動作します

興味深い側面ですが、Firefoxのデバッグは機能します。Firefoxのデバッグセッションを実行する場合、ブレークポイントがトリガーされる前に最初のページの読み込みを更新する必要があります。

ブレークポイントは最初、エラーUnverifiedBreakpointを示していましたこれをクリックすると、ウィザードがpathMappings設定にを追加するように求められました。

launch.jsonWindows10で使用されているFirefoxの構成は次のとおりです。

    {
      "name": "Launch Firefox",
      "type": "firefox",
      "request": "launch",
      "reAttach": true,
      "url": "http://localhost:3000",
      "webRoot": "${workspaceFolder}/src",
      "pathMappings": [
          {
             "url": "http://localhost:3000/home/rando/dev/sandbox/src",
             "path": "${workspaceFolder}/src"
          }
      ]
    }

これ/home/rando/dev/sandbox/srcは、WSL2Ubuntu内のアプリの場所であることに注意してくださいMacOS Firefoxのセットアップは同じですが、がありませんpathMappings

結論

この段階では、追加の変更は必要ないことを示唆しているVisual Studio Code WSLのドキュメントにもかかわらず、パスマッピングを別の方法で設定する必要があると結論付けることができます。

StackOverflow、助けてください。あなたは私の唯一の希望です。

アレックス

私はちょうどこれに遭遇しました、そして私はそれが自分自身のために働いていると思います。.scriptコマンドを使用してDebugger for Chrome extension、以下の出力が表示されました。

› http://localhost:3000/static/js/0.chunk.js (/__vscode-remote-uri__/home/user/projects/TachiWeb-React/src/static/js/0.chunk.js)
    - /home/user/projects/TachiWeb-React/node_modules/@babel/runtime-corejs2/core-js/date/now.js (/home/user/projects/TachiWeb-React/node_modules/@babel/runtime-corejs2/core-js/date/now.js)

推測されたローカルパスにWebルートが追加されていないようです。しかし、使用${webRoot}/*も何らかの理由で機能しません。そうすることで、以下の結果のようにパスが2回繰り返されます。

/__vscode-remote-uri__/home/user/projects/TachiWeb-React/src/home/user/projects/TachiWeb-React/node_modules/@babel/runtime-corejs2/core-js/date/now.js

しかし、手動で書き出す"/__vscode-remote-uri__/*"ことで、上記の重複パスの問題を回避できるようです。

これは私の作業構成ですlaunch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "WSL Chrome",
      "type": "chrome",
      "request": "launch",
      "url": "http://localhost:3000",
      "webRoot": "${workspaceFolder}/src",
      "sourceMapPathOverrides": {
        "/*": "/__vscode-remote-uri__/*"
      }
    }
  ]
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  2. 2

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  3. 3

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    Ansibleで複数行のシェルスクリプトを実行する方法

  7. 7

    Python / SciPyのピーク検出アルゴリズム

  8. 8

    画像変更コードを実行してもボタンの画像が変更されない

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  11. 11

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  12. 12

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  13. 13

    二次導関数を数値計算するときの大きな誤差

  14. 14

    値間の一致を見つける最も簡単な方法は何ですか

  15. 15

    androidsoongビルドシステムによるネイティブコードカバレッジ

  16. 16

    Reactでclsxを使用する方法

  17. 17

    How to access json value by key value in freemarker?

  18. 18

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  19. 19

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  20. 20

    Using Angular's UI-router, how can we make sure the new version of the html partial views are used, rather than the cached version?

  21. 21

    symfonyエラーサーバーが404NotFoundを返しました

ホットタグ

アーカイブ