如何修复:details.family.toLowerCase不是一个函数?



我正在尝试运行Testcafe测试,但得到以下错误。在我最近更新npm和Node之前,这是可以工作的。

npm test
> e2e-tests@1.0.0 test
> node index.js test
TypeError: details.family.toLowerCase is not a function
at C:macgithube2e-testsnode_modulesiplibip.js:385:39
at Array.filter (<anonymous>)
at C:macgithube2e-testsnode_modulesiplibip.js:384:37
at Array.map (<anonymous>)
at ip.address (C:mace2e-testsnode_modulesiplibip.js:379:37)
at Proxy.getIPAddress (C:mace2e-testsnode_modulesendpoint-utilsindex.js:109:15)
at getValidHostname (C:mace2e-testsnode_modulestestcafelibindex.js:26:34)
at createTestCafe (C:mace2e-testsnode_modulestestcafelibindex.js:71:9)
at async run (C:mace2e-teststest-runner.js:40:20)
at async testRunner (C:mace2e-teststest-runner.js:117:10)
at async start (C:mace2e-testsindex.js:9:22)

这似乎是node版本18的一个错误,与ip包交互(在许多流行的库中使用,如Storybook和next ui)。

您可以尝试重写以使用最新版本的ip:

{
"overrides": {
"ip": "1.1.8"
}
}

但是-至少在我的情况下-我遇到了进一步的问题与这种方法。唯一的"解决方案"目前是降级到使用长期支持(LTS)版本的node/npm(目前是16.15.1),而不是17/18。我强烈推荐nvm,它可以让您只执行nvm install lts

最新更新