我正在使用react native编写应用程序,我希望能够使用jest框架测试我的代码并使用visual studio代码编辑器调试器来设置断点 . 我目前遇到的问题是无论我如何运行调试器,无论是通过生成新实例还是附加它,我似乎无法从babel中获取源映射 . 我在.babelrc文件中尝试过各种配置,但似乎都没有 .
VScode版本 - 1.6.0(最新)
我的目录结构类似于此
-package.json
-node_modules
-.babelrc
-dist
-app
-myModule.js
-test
-myModule.spec.js
然后在我的.babelrc中我有以下内容
{
"presets" : ["react-native"],
"sourceMaps" : true,
"outDir" : "./dist"
}
我已经尝试将 sourceMaps
道具设置为 true
和 inline
,两者都不适用于当前的 launch.json
配置 .
这是我的 launch.json
用于运行Jest测试器
{
"name" : "Launch via jest",
"type": "node",
"request": "launch",
"program" : "${workspaceRoot}/node_modules/jest/bin/jest.js",
"cwd": "${workspaceRoot}",
"args": [
"--runInBand"
],
"runtimeArgs": [
"--harmony"
],
"sourceMaps": true,
"outDir" : "${workspaceRoot}/dist"
}
--harmony
和 --runInBand
都是使调试器正常工作所必需的,因为Jest将生成与端口冲突的子进程 .
我的package.json中还有其他Jest配置
"jest": {
"preset": "jest-react-native"
}
现在,无论何时我运行调试器,它都会运行,它会在babel输出的断点处停止,而不是原始源,这对于帮助不大 . 我还应该提一下,测试本身是由babel编译的,我不确定它是否重要 .
任何指针或不同的配置都欢迎 .
2 回答
.babelrc选项是
sourceMap
单数 .{ "sourceMap" : "inline" }
适合我 .你的开玩笑配置是什么?我看到奇怪的转换输出与覆盖相关,直到我添加以下配置值:
"testRegex": "src/.*\\.test\\.js$"