我正在尝试使用babel、jest和vs code调试一个简单的项目。当我设置断点并开始调试后,我的断点会跳来跳去,不再是我开始时设置的位置了。示例存储库可以在此处查看-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行:
当我通过选择测试文件并在VS Code调试面板中运行Jest来开始调试时,我的断点会跳转到测试线9和实现线6:
使用以下扩展在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
.babelrc
文件中添加retainLines: true
,这样就不会混淆断点应该在哪一行了。 - mootrichardretainlines
将会破坏任何列断点,并且根据文档生成“奇怪的代码”。看起来源映射应该可以工作 :( - RyanHirsch