0

Testcafe 1.10 似乎不能通过 Yarn 2 运行,而它只是手动运行全局安装的。我得到这个输出:

ERROR Error: testcafe-legacy-api tried to access read-file-relative, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.

Required package: read-file-relative (via "read-file-relative")
Required by: testcafe-legacy-api@npm:4.0.0 (via /data/Fichiers/Code/testcafe/.yarn/cache/testcafe-legacy-api-npm-4.0.0-ff97b69c8c-e4a891ec41.zip/node_modules/testcafe-legacy-api/lib/)

我可以看到它read-file-relative 列为 的依赖项testcafe,但不是testcafe-legacy-apihttps://yarnpkg.com/package/testcafehttps://yarnpkg.com/package/testcafe-legacy-api )的依赖项,它本身就是的依赖关系testcafe

4

1 回答 1

1

编辑:双方的 PR 已合并,因此它现在或很快应该可以工作,而无需使用下面的解决方法。

显然testcafe,它的依赖项testcafe-legacy-api有几个实际的依赖项,这些依赖项没有在它们的依赖项列表中列出。

正如文档.yarnrc.yml所解释的:

某些包的依赖项可能指定不正确 - 例如缺少一个依赖项,导致 Yarn 拒绝访问。这些packageExtensions字段提供了一种使用附加信息扩展现有包定义的方法。

将此添加到我的.yarnrc.yml然后运行yarn install(或yarn)修复它:

packageExtensions:
  "testcafe@*":
    dependencies:
      "@babel/runtime": "*"
      "@babel/plugin-transform-for-of": "*"
  "testcafe-legacy-api@*":
    dependencies:
      "read-file-relative": "*"
      "testcafe-hammerhead": "*"
于 2021-01-14T09:51:13.280 回答