0

我们为团队使用制作了一个 npm 包,其中我们正在使用它uuidjs。现在我已经在我的 Create-React-App 上安装了这个自定义的 npm 包,它正在使用testing-library.

当我测试从这个自定义包中导入文件的组件时,uuidjs我收到以下错误:

crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported

我知道这个问题是有答案的install react-native-get-random-values。但我的困惑是我可以在使用 React.js 的 CRA 中安装它吗?与它有react-native什么关系还是它独立?

4

1 回答 1

0

问题

当您运行测试时,我怀疑您是在运行 Node.js 的测试环境中运行它。crypto.getRandomValues仅可从 Web API 获得。它在 Node 下不存在crypto,请参阅 Node 上的文档crypto。Node 确实提供了一个Web 加密 APIgetRandomValuesuuid库不会意识到它。

解决方案

您可以自己模拟或填充crypto.getRandomValues,请参阅:How to use Jest to test functions using crypto or window.msCrypto

于 2021-09-09T12:58:40.993 回答