Webpack Rust/Wasm:未找到模块:错误:Can';t解决';环境';在里面
我正在尝试将一个端口导入wasm。我当前的工具链是:Webpack Rust/Wasm:未找到模块:错误:Can';t解决';环境';在里面,webpack,rust,webassembly,wasm-bindgen,Webpack,Rust,Webassembly,Wasm Bindgen,我正在尝试将一个端口导入wasm。我当前的工具链是: wasm包 网页包 wasm bindgen 有关构建系统的更多信息: 在我的rust板条箱(这是一个--lib板条箱)中,我只调用wasm pack build--target browser。这将创建一个包含wasm blob和相关js文件的pkg文件夹。这里的编译人员没有抱怨 然后,在pkg中,我运行npm-link(只运行一次) 然后,cargo生成--githttps://github.com/rustwasm/wasm-pac
- wasm包
- 网页包
- wasm bindgen
--lib
板条箱)中,我只调用wasm pack build--target browser
。这将创建一个包含wasm blob和相关js文件的pkg
文件夹。这里的编译人员没有抱怨
然后,在pkg
中,我运行npm-link
(只运行一次)
然后,cargo生成--githttps://github.com/rustwasm/wasm-pack-template
创建所需的web应用程序样板。在这个命令生成的文件夹中,我运行npmlinkschnorrkel js
使其可见<代码>npm运行启动运行网页开发服务器
绑定简单的计算函数和警报等初始测试工作正常
当我开始使用上述板条箱()中的某些(而不是任何)函数时,一切都会中断()。不幸的是,我收到的错误消息没有提供任何信息,根本没有帮助:
Entrypoint main = bootstrap.js
[../pkg/schnorrkel_js.js] 3.53 KiB {0} [built]
[../pkg/schnorrkel_js_bg.wasm] 93.7 KiB {0} [built]
+ 27 hidden modules
ERROR in ../pkg/schnorrkel_js_bg.wasm
Module not found: Error: Can't resolve 'env' in '.../schnorrkel-js/pkg'
@ ../pkg/schnorrkel_js_bg.wasm
@ ../pkg/schnorrkel_js.js
@ ./index.js
@ ./bootstrap.js
@ multi (webpack)-dev-server/client?http://localhost:8080 ./bootstrap.js
这是什么原因?我有一个强烈的猜测,一些底层功能不可移植到wasm,但究竟是哪一个,为什么,错误消息试图说什么
注:
- 我正在使用最新的rust nightly版本(
)rustc 1.34.0-nightly(d17318011 2019-02-07)
- 其余的设置步骤直接从中执行
- 货舱
#[wasm_bindgen]
pub fn verify(signature: &[u8], message: &[u8], pubkey: &[u8]) -> bool {
let sig = match Signature::from_bytes(signature) {
Ok(some_sig) => some_sig,
Err(_) => return false
};
let pk = match PublicKey::from_bytes(pubkey) {
Ok(some_pk) => some_pk,
Err(_) => return false
};
// works up until here if I return a boolean.
// calling this breaks everything.
pk.verify_simple(SIGNING_CTX, message, &sig)
}
如前所述,
clear\u on\u drop
依赖项使用的C代码可能会出现问题
尝试在schnorrkel
板条箱上启用nightly
功能,从而在clear\u on\u drop
上启用nightly
功能,禁用其在Cargo.toml上使用C.:
[dependencies]
wasm-bindgen = "0.2"
schnorrkel = { git = "https://github.com/w3f/schnorrkel.git", features = ["nightly"] }
或者,您可以在编译的.wasm
二进制文件上使用wasm2wat
(有)来检查导入失败的env
[dependencies]
wasm-bindgen = "0.2"
schnorrkel = { git = "https://github.com/w3f/schnorrkel.git", features = ["nightly"] }