use*_*375 10 rust rust-cargo wasm-bindgen
我的板条箱的 Cargo.toml 的一部分:
[features]
wasm = ["ed25519-dalek/nightly", "rand/wasm-bindgen", "js-sys"]
Run Code Online (Sandbox Code Playgroud)
当在另一个项目中使用该板条箱并且明确选择“wasm”功能时,这是有效的。
我想仅当目标架构是 WASM 时自动启用此功能。我尝试添加这个:
#[cfg(target_arch = "wasm32")]
default = ["wasm"]
Run Code Online (Sandbox Code Playgroud)
当我针对 WASM 以外的目标进行编译时,“wasm”作为默认值包含在内,如何仅当目标是 WASM 时才将“wasm”设为默认值?
您只能具有特定于目标的依赖项,而不能具有特定于目标的功能。这是一个已知的错误,不幸的是自 2015 年以来就已开放。
人们期望这种语法得到支持,但目前还没有任何计划来实现这一点:
[target.'cfg(target_arch = "wasm32")'.features]
default = ["ed25519-dalek/nightly", "rand/wasm-bindgen", "js-sys"]
Run Code Online (Sandbox Code Playgroud)
作为一个丑陋的解决方法,您可以创建另一个依赖于您的板条箱的板条箱,并让用户使用这个新的板条箱:
[target.'cfg(target_arch = "wasm32")'.dependencies.your_crate]
version = "1.0.0"
features = ["wasm"]
Run Code Online (Sandbox Code Playgroud)