Ionic 未捕获的类型错误:无法在Hash. CipherBase读取未定义(读取"call")的属性

7ivaypg9  于 2023-01-28  发布在  Ionic
关注(0)|答案(1)|浏览(152)

我在我的离子React应用程序代码中使用create-hash包(https://github.com/crypto-browserify/createHash)。
我已使用npm install create-hash安装了该软件包
我使用的函数如下:

const hash = createHash('sha256')
      .update("entropyBuffer")
      .digest();

但是,它会在浏览器中引发以下错误:

当我将算法更改为以下内容时:“md5”、“rmd 160”和“ripemd 160”,工作正常。我不明白是什么问题?
我在网上看过类似的问题,但没有任何帮助。
https://github.com/crypto-browserify/cipher-base/issues/11
How to generate a Mnemonic in Angular (with npm package bip39 for Solana)

zlhcx6iw

zlhcx6iw1#

参考此处的原始答案-链接
patch-package帮助我:

npm i patch-package

在package.json中添加以下行:

"scripts": {
  "postinstall": "patch-package",
}

打开问题文件并更正它。在我的例子中:

node_modules/cipher-base/index.js

var Buffer = require('safe-buffer').Buffer
var Transform = require('readable-stream').Transform // replacing instead of "stream"
var StringDecoder = require('string_decoder').StringDecoder
var inherits = require('inherits')

function CipherBase (hashMode) {
...

从项目的根目录运行命令:

npx patch-package cipher-base

它将在根目录中创建一个新的文件夹patches,并在其中添加此修复程序。仅此而已。提交更改。它将在重新安装软件包后自动替换node_modules中的代码

相关问题