我正在使用VSCode Jest 扩展。
它提供的功能之一是在 IDE 中运行测试并提供内联错误消息。
这里给我的错误TypeError: this.children.flatMap is not a function
是 Jest 测试在错误的节点运行时运行 -.flatMap
包含在节点 >11 版本中。
当我从命令行运行 Jest 时,我也收到此错误,我通过.nvmrc
向我的项目添加并使用 nvm 更改节点版本来修复此错误。
我如何告诉 Jest/VSCode 类似地改变它的 Node 运行时?
答案1
您可以在setting.json中添加下几行:
"jest.shell": "/bin/zsh",
"jest.jestCommandLine": "source ~/.zshrc && nvm use 14.15 && yarn test",
如果你使用 zsh,那么这个方法可行
答案2
此问题已在jest-community/vscode-jest#72
。 按照此评论,目前最好的解决方案似乎是更新您的系统以.nvmrc
默认使用您指定的 Node 版本:
nvm alias default $(cat .nvmrc)
显然这并不理想,因为它会影响整个系统,如果您有多个使用不同版本 Node 的项目,就会导致问题。