是否有 fix/workaround 让 erdJs 与 Angular 12 一起工作?

Is there a fix/workaround for making erdJs work with Angular 12?

Angular 12 似乎已经迁移到 Webpack 5,这似乎使使用 erdJs 的构建不起作用,至少在我的情况下是这样。

我设法找到了一些解决方法,包括安装 crypto-browserify、stream-browserify 和 path-browserify 并在我的 tsconfig.json 路径中使用它们,但我似乎仍然缺少“fs”和在 运行 ng buildng serve

时出现此错误

/node_modules/@elrondnetwork/bls-wasm/bls_c.js:54:30-43 - Error: Module not found: Error: Can't resolve 'fs' in '...\node_modules\@elrondnetwork\bls-wasm'.

此错误在位于 erdjs 中的其他 4 个文件中出现 5 次:

@elrondnetwork/erdjs/out/smartcontracts/code.js:35:24-37
@elrondnetwork/erdjs/out/smartcontracts/typesystem/abiRegistry.js:35:24-37
@elrondnetwork/erdjs/out/smartcontracts/wrapper/contractWrapper.js:17:29-42
@elrondnetwork/erdjs/out/testutils/wallets.js:32:24-37

有人知道如何让 erdJs 与 Angular 12 一起工作吗?

对于以后遇到这个问题的其他人。目前无法在 angular 项目中使用 erdjs npm 包。

当前的解决方法涉及将 erdjs 包编译为其浏览器版本并将其用作项目中的资产。

你可以自己编译,使用yarn run compile-browser

这里进一步描述和展示了解决方法: https://github.com/ElrondNetwork/elrond-sdk-erdjs/issues/79#issuecomment-940872053