我正在运行yarn test
来运行我的测试。我必须提前更新package.json
文件中的一些版本,所以我删除了yarn.lock
文件。在删除yarn.lock
文件之前,测试通过得很好。现在,测试失败,出现以下错误:
TypeError: shim$1.Parser.looksLikeNumber is not a function
at Object.Yargs.self._parsePositionalNumbers (/Users/me/dev/test-app/node_modules/jasmine-ts/node_modules/yargs/build/index.cjs:2804:31)
我的package.json
包括:
"jasmine-ts": "^0.3.0"
旧的yarn.lock
文件如下所示:
jasmine-ts@^0.3.0:
version: "0.3.0"
resolved: (...)
integrity: (...)
dependencies:
yargs: "^8.0.2"
新的yarn.lock
文件如下所示:
jasmine-ts@^0.3.0:
version "0.3.3"
resolved: (...)
integrity: (...)
dependencies:
yargs "^16.2.0"
我相信jasmine-ts
显示的yargs
版本不应该给我这个错误。我有办法解决这个问题吗?或者这是jasmine-ts
中的一个错误吗?最新版本是0.4.0
,它在测试中也出现了同样的错误,所以我希望我只是错过了一些简单的东西。感谢您的帮助。
我也有同样的问题,但在我的情况下,yargs
是jest-cli
的子依赖项
在我寻找线索时发现了你的问题,多亏了你的版本指针,我才得以解决这个问题。
我将yargs
版本13.3.2
添加到分辨率中,它解决了这个问题。
软件包.json
"resolutions": {
"yargs": "^13.3.2"
}
yargs
也可能是您项目中其他模块的子依赖项。如果您知道某个版本运行良好,请将其添加到分辨率中。否则,使用13.3.2
,因为它不会抛出这个TypeError: shim$1.Parser.looksLikeNumber is not a function
。
注意:-您没有删除以前的版本,解决方案只会将您的子依赖项固定到指定的版本。
阅读决议:-https://medium.com/learnwithrahul/understanding-npm-dependency-resolution-84a24180901b