gpt4 book ai didi

typescript - 如何在 typescript 文件中导入由 wasm-pack 生成的 wasm 文件?

转载 作者:行者123 更新时间:2023-12-03 11:26:50 67 4
gpt4 key购买 nike

脚步:cargo generate --git https://github.com/rustwasm/wasm-pack-template项目名称:project-name

// src/lib.rsj
mod utils;

use wasm_bindgen::prelude::*;

#[cfg(feature = "wee_alloc")]
#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;

#[wasm_bindgen]
struct Temp;

#[wasm_bindgen]
impl Temp {
pub fn hello() -> String {
String::from("QWE")
}
}
Cargo.toml有所有必要的细节:
[lib]
crate-type = ["cdylib", "rlib"]

[features]
default = ["console_error_panic_hook"]

[dependencies]
wasm-bindgen = "0.2.63"

console_error_panic_hook = { version = "0.1.6", optional = true }

wee_alloc = { version = "0.4.5", optional = true }

[dev-dependencies]
wasm-bindgen-test = "0.3.13"

[profile.release]
opt-level = "s"

在项目目录下执行命令:
# builds and makes pkg directory in root directory with .js .ts and .wasm files
wasm-pack build

mkdir deno
touch deno/main.ts
// deno/main.ts

const filename = "<absolute-path>/pkg/project_name_bg.wasm";
const wasmCode = await Deno.readFile(filename);
const wasmModule = new WebAssembly.Module(wasmCode);
const wasmInstance = new WebAssembly.Instance(wasmModule);
const {
Temp,
} = wasmInstance.exports;

console.log(Temp);
最后,在项目根目录中:
deno run --allow-read deno/main.ts
但我收到以下错误:
error: Uncaught TypeError: WebAssembly.Instance(): Imports argument must be present and must be 
an object
const wasmInstance = new WebAssembly.Instance(wasmModule);
^
at file:///.../project-name/deno/main.ts:5:22
这是我想要做的:我想生成 .wasm从 Rust 文件(使用 wasm-pack )导入该文件到 .ts 中文件并使用 deno 执行.但我无法修复最后一步。
我尝试使用 wasi ,没用。
完成上述步骤并使用 node/ js相反 deno/ tsrustwasm guide 的帮助下工作正常.

如何使用 deno 实现我上面提到的内容+ ts ?

最佳答案

构造函数需要 imports目的:

const imports = { };
const wasmInstance = new WebAssembly.Instance(wasmModule, imports);

关于typescript - 如何在 typescript 文件中导入由 wasm-pack 生成的 wasm 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64598596/

67 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com