我正在使用React Native编写一个应用程序,并希望能够使用jest框架测试我的代码,并使用Visual Studio Code编辑器调试程序以设置断点。我目前遇到的问题是,无论我如何运行调试器,无论是通过生成新实例还是附加它,都似乎无法从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
配置下都无法正常工作。
这是我用于运行Jest测试器的launch.json
文件。
{
"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编译的,我不确定这是否有影响。
欢迎提供任何指针或不同的配置。