Импорт Rust в коде wasm-pack вызывает ошибку JS
Я получаю ошибку JS:
Uncaught (in promise) TypeError: WebAssembly.instantiate(): Import #0 module="env" error: module is not an object or function
Когда я просматриваю файл wasm в инструментах разработчика Chrome, я вижу вверху такие операторы импорта:
(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))
Что вызывает эти операторы импорта? Как их удалить или исправить? Я вижу, что они являются частью пакета Rust, который входит в
blsttc
упаковка. В
blst
пакет использует bindgen для создания привязок FFI к blst.h, так что, может быть, это как-то связано с этим?
В этом репозитории Github есть код. Я строю, используя
wasm-pack build --target=web
1 ответ
Я исправил это, переключившись на Ubuntu 20.04 со всем последним, и теперь он отлично работает. Я был на Mac OS 10.15.7.