我一直在努力克服运行此处描述的jest时明显的内存泄漏:https://github.com/facebook/jest/issues/7874
我只想给一大堆堆空间开玩笑,这样我的测试就可以在泄漏的情况下完成。但是,使用以下命令行:
node --max-old-space-size=8192 --expose-gc ./node_modules/.bin/jest --no-cache --runInBand --logHeapUsage
我仍然得到";Javascript堆内存不足";堆使用量约为1500MB。如果我运行:
节点--最大旧空间大小=8192
然后做:
> v8.getHeapStatistics()
{
...
heap_size_limit: 8640266240
...
}
很明显,我可以影响节点的堆大小。但不知何故,这并不是玩笑。
节点:16.13.0耶稣:27.4.4有什么想法吗?
也许jest.config.js
中的其中一个设置可以为您修复它:
{
maxWorkers: 1,
globals: {
'ts-jest': {
isolatedModules: true
}
}
}
我想我记得我和你有同样的问题,我用所有这些配置解决了它。我不确定哪一部分是与众不同的,但我想试一下。
我认为您可以将问题设置--最大旧空间大小=8192设置为较小的值。当V8进程运行jest时,您可能正在从中窃取内存。
你的问题的参考,但更通用。