在 Cargo.toml 中使用"not"关键字作为条件依赖是否有效?



在 Cargo.toml 中使用cfg(not(...))来声明依赖项是否有效?

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
websocket = "0.23.0"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3.22"
features = [
"ErrorEvent",
"MessageEvent",
"WebSocket",
]

我收到以下代码的错误can't find crate "websocket"

macro_rules! if_not_wasm {
($($i:item)*) => ($(
#[cfg(not(target_arch = "wasm"))] $i
)*)
}
macro_rules! if_wasm {
($($i:item)*) => ($(
#[cfg(target_arch = "wasm")] $i
)*)
}
if_not_wasm! {
extern crate websocket;
}
if_wasm! {
extern crate web_sys;
}

if_wasm!中的导入按预期工作,但if_not_wasm!错误。我使用以下.cargo/config运行它:

[build]
target = "wasm32-unknown-unknown"

看起来你只需要wasm32,而不是wasm,在你的宏规则条件中。

最新更新