I don't understand workspace for wasm/x86_64 development

Hi,

I have the following file setup:

MyRoot
-- Cargo.toml
-- CrateA
----- Cargo.toml
----- src/
-- CrateB
----- Cargo.toml
----- src/

My workspace cargo toml:

[workspace]
resolver = "2"
members = [
       "crateA",
       "crateB",
        ...
]

[workspace.package]
authors = [""]

[workspace.dependencies]
...
tokio = { version = "1.40.0", features = ["full"] }
...

and each crate has it's own Cargo.toml file, for example:

[package]
name = "crateB"
version = "0.1.0"
edition = "2021"
resolver = "2"

[dependencies]
...
dioxus = { workspace = true }
...

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
...
tokio = { workspace = true }
...

[features]
...

So, from now my issue is that the workspace looks like it doesn't respect [target.'cfg(not(target_arch = "wasm32"))'.dependencies] and compile it anyway for the wasm target which fails with Tokio notably at compilation time because full is not compatible with this target.

Note, when not using workspaces, it all works.

I also just discovered Dioxus and when moving in the CrateB, where the dioxus code is, running dx build -- bin crateB
leads to
index.html not found and the error with tokio.

So clearly a misconfiguration on my end.
What am I missing here ?
Any option I should pass ?

Note: I like the idea of a virtual root workspace, without package section.

Thank you