2

我最近一直在阅读Rust Wasm Book。在其中,它wasm_bindgen通过#[wasm_bindgen]注释来利用。在第 5.5 节“调试”中,提到了以下内容:

请注意,为了在没有编译器和链接器错误的情况下运行 #[test]s,您需要注释掉 wasm-game-of-life/Cargo.toml 中的 crate-type = "cdylib" 位。

#[wasm-bindgen]它同样建议在运行基准测试时在下一节中注释掉方法/结构的属性。

要为此添加更复杂的部分,在复杂的 wasm 应用程序中有这样的部分:

#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = performance)]
    fn now() -> f64;
}

我还需要注释掉这些部分,以便让代码在本地运行。

当然,这看起来非常乏味。我的问题是是否有办法通过编译器(或通过货物脚本)自动完成这项工作,以便我可以指定一个命令,例如cargo buildor cargo test,它将本机编译(禁用属性),也许还有什么喜欢cargo build --feature=wasm在启用 wasm_bindgen 的情况下进行构建。

我考虑编写一个单独的build.rs脚本,将所有源代码和Cargo.toml文件复制到一个中间目录(因此您的源代码不会就地修改),自己进行注释,然后从这个源代码构建。当然,这里的问题是 1)构建脚本正在编辑您的源代码,因此行号将被关闭,并且 2)它看起来不干净 - 一种解决这个问题的 hacky 方法。

我想知道其他人是否有我可以使用的建议或他们使用过的东西,因为这似乎是非常可取的行为。

4

0 回答 0