web-dev-qa-db-ja.com

VS CodeデバッガーのJest + Babelによりブレークポイントが移動する

Babel、jest、およびvsコードを使用して単純なプロジェクトをデバッグしようとしています。ブレークポイントを設定してからデバッグを開始すると、ブレークポイントが飛び跳ねて、開始時の場所になくなります。サンプルのレポはこちらにあります- https://github.com/RyanHirsch/starter-node

次を含むようにlaunch.jsonを更新しました

{
  "name": "Jest",
  "type": "node",
  "request": "launch",
  "program": "${workspaceRoot}/node_modules/jest/bin/jest.js",
  "stopOnEntry": false,
  "args": ["-i", "${file}"],
  "cwd": "${workspaceRoot}",
  "runtimeExecutable": null,
  "sourceMaps": true,
  "protocol": "inspector"
}

そして、私の.babelrcは次のようになります。

{
  "plugins": ["@babel/plugin-proposal-object-rest-spread"],
  "sourceMaps": "inline",
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "6.10"
        }
      }
    ]
  ]
}

ソースマップオプションはこれを機能させるのに十分だと思いましたが、私は間違っていました。ブレークポイントを元の場所に保持するには、何を変更する必要がありますか?具体的には、テストをデバッグしようとしています。

====編集====

ブレークポイントがテスト行10と実装行4にある前:

Before Debugging

テストファイルを選択してデバッグを開始し、VS CodeデバッグペインでJestを実行すると、ブレークポイントがテスト行9と実装行6にジャンプします。 During Debugging

次の拡張子を持つNode 9.6.1で実行:

DavidAnson.vscode-markdownlint
EditorConfig.EditorConfig
Orta.vscode-jest
PKief.material-icon-theme
PeterJausovec.vscode-docker
Shan.code-settings-sync
bungcip.better-toml
dbaeumer.vscode-eslint
dracula-theme.theme-dracula
dzannotti.vscode-babel-coloring
eamodio.gitlens
esbenp.prettier-vscode
gerane.Theme-FlatlandMonokai
humao.rest-client
mauve.terraform
mikestead.dotenv
mjmcloug.vscode-elixir
mohsen1.prettify-json
ms-vscode.Theme-MaterialKit
ms-vscode.Azure-account
ms-vscode.cpptools
ritwickdey.LiveServer
sbrink.Elm
shanoor.vscode-nginx
vscodevim.vim
31
RyanHirsch

(jest 23.6.0を使用して)この問題を取得し、これが反応アプリの作成に関する既知の問題であることを確認し、このプルリクエストで解決しました。

https://github.com/facebook/create-react-app/pull/3605/files

次の構成をmylaunch.jsonに適用しました

{ "type": "node", "request": "launch", "name": "Jest All", "program": "${workspaceFolder}/node_modules/jest/bin/jest", "args": [ "test", "--runInBand", "--no-cache"
], "sourceMaps": false, "console": "integratedTerminal", "internalConsoleOptions": "neverOpen" },

正しいブレークポイントでブレークすることができました。

5
Braulio

@RyanHirsch;単にretainLines": trueとともにsourceMap: "inline"あなたのバベルで、それは動作します。

5
Jefe_Spain

大変な苦労の末、JestがBabelデバッグで一貫して動作し、正しい行で中断するようになりました

主に、優れた JestプラグインVSCode を使用しました開発者 ' Orta ' VSCodeの拡張機能ペインで「Jest」を検索:

How to find and install the extension via VSCode

そこから、テストに表示されるDebugリンクを押すだけで、テストとアプリケーションコードの両方でブレークポイントを正しくヒットできます。

テストファイルでブレークポイントが正常にヒットしました。

Successful Jest test debugging via Orta's Jest VSCode plugin

ソースコードファイルでブレークポイントが正常にヒットしました。

Breakpoint successfully hit in the source code file

0
arcadia_168