【发布时间】:2018-08-06 12:05:25
【问题描述】:
我正在尝试使用 babel、jest 和 vs 代码调试一个简单的项目。当我设置断点然后开始调试时,我的断点跳来跳去,不再是我开始时所在的位置。可以在此处查看示例 repo - 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:
在具有以下扩展的节点 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
【问题讨论】:
-
你能显示一些运行前和运行后的截图吗?你在哪里放置断点你如何运行它?因为项目断点对我来说运行得很好。还要提到你使用的节点和 NPM 版本
-
虽然这并不能解释为什么会发生这种情况,但是您可以随时尝试将
retainLines: true添加到您的.babelrc中,这样就不会混淆断点应该在哪一行。 -
添加
retainlines将打破任何列断点,并根据文档产生“古怪代码”。看起来源映射应该可以工作:( -
好吧,并不是说它有很大帮助,但你并不孤单github.com/babel/babel/issues/6008
标签: javascript visual-studio-code jestjs babeljs babel-jest