Импорт 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.

Другие вопросы по тегам