如何解决wasm-pack 代码中的 Rust 导入导致 JS 错误
我收到一个 JS 错误:Uncaught (in promise) TypeError: WebAssembly.instantiate(): Import #0 module="env" error: module is not an object or function
当我在 Chrome 开发工具中查看 wasm 文件时,我在顶部看到这样的导入语句:
(module
(func $blst_hash_to_g2 (;0;) (import "env" "blst_hash_to_g2") (param i32 i32 i32 i32 i32 i32 i32))
(func $blst_sign_pk2_in_g1 (;1;) (import "env" "blst_sign_pk2_in_g1") (param i32 i32 i32 i32))
(func $blst_scalar_from_bendian (;2;) (import "env" "blst_scalar_from_bendian") (param i32 i32))
(func $blst_sk_check (;3;) (import "env" "blst_sk_check") (param i32) (result i32))
是什么导致了这些导入语句?我该如何移除或修复它们?我可以看到它们是 blst
Rust 包的一部分,它包含在 blsttc
包中。 blst
包使用 bindgen 生成到 blst.h 的 FFI 绑定,所以这可能与它有关?
这个 Github repo 有代码。我正在使用 wasm-pack build --target=web
解决方法
我通过切换到最新的 Ubuntu 20.04 解决了这个问题,现在效果很好。我使用的是 mac os 10.15.7。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。