我有一个React Native项目(从Ignite CLI 2.0.0默认样板文件创建),它需要对基于节点的软件包有一些依赖。
因此,我根据ReactNativify创建了transformers.js
,babel-transform.js
和rn-cli.js
。这基本上等同于普通.babelrc
文件中的内容,并使用babel-plugin-rewrite-require
交换Node对象,并用Browserify填充程序或空模拟替换它们。到目前为止,非常好。
现在问题是在Visual Studio代码(1.13.1
)中调试它。我已经有了significant adventure(或者恐怖故事,如果你愿意的话)已经进行了RN调试,但是在将Node降级为7.10.1
之后认为它已经运行了。
一切似乎进展顺利,停止断点,逐步执行代码等等,但这是实际的代码而不是已填充的垫片到位!此外,断点在没有代码缩进的只读代码窗口中打开。
我的调试配置是:
{
"type": "node",
"request": "launch",
"name": "Launch Tests",
"program": "${workspaceRoot}/node_modules/.bin/jest",
"args": [
"--runInBand",
"--no-cache"
]
// Not needed, but tried ;)
// "runtimeArgs": [
// "--debug-brk=127.0.0.1:5858"
// ],
// "port": 5858
}
有没有人有类似的,希望有更好的体验吗?
PS。可能有vscode github issue (#26782)与此相关。
答案 0 :(得分:0)
在我的问题中,我遇到了两个问题。
第一个,针对实际代码进行测试,似乎是Jest的一个问题。 Jest团队表示:
这是预期的行为。 Jest应该在源文件上运行。在任何大型代码库上,在运行测试之前生成一个包太慢了,所以Jest只是及时编译文件,这使得它很快。
现在这可能是一个错误传达,您可以使用正确的babel-jest
配置来进行动态转换,我没有得到团队的进一步帮助。所以我决定选择一个不同的测试平台(Mocha,Jasmine和/或Karma)。
如果你想试试Jest的运气,你可以跟进这个帖子:https://github.com/facebook/jest/issues/4028
第二个问题是,在调试会话期间VS中只读面板中的代码打开,是Microsoft正在处理的一个未解决的问题。您可以在此处查看进度:https://github.com/Microsoft/vscode/issues/26782
[更新:我刚收到Jest团队的进一步指示:
@aschrijver Jest处理这个问题的一般方法是通过自己进行转换。因此,您在配置中设置了Jest本身用于进行转换的变换器。
https://facebook.github.io/jest/docs/configuration.html#transform-object-string-string
Typescript的示例配置可以让您了解它的外观:https://github.com/kulshekhar/ts-jest
就垫片而言,我认为你可能想要的实际上是Jest嘲笑。当您导入或需要时,Jest模拟可以介入而不是实际模块。