React.js中不支持crypto.getRandomValues()



有一个我们为团队使用而制作的npm包,里面我们正在使用这个uuidjs。现在我已经在我的Create React应用程序上安装了这个自定义的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与它或它的独立性有关系吗?

问题

当你运行测试时,我怀疑你是在Node.js中运行的测试环境中运行它。crypto.getRandomValues只能从web API中获得。它不存在于crypto下的Node中,请参阅crypto上的Node文档。Node确实提供了一个web加密API,它有getRandomValues,但uuid库不会知道它

解决方案

您可以自己模拟或polyfillcrypto.getRandomValues,请参阅:如何使用Jest测试使用crypto或window.msCrypto.的函数

相关内容

  • 没有找到相关文章

最新更新