在 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
,在你的宏规则条件中。