DioxusLabs/dioxus

Using `"fullstack"` feature is not equivalent to using it separately for server and web client

Opened this issue · 1 comments

Problem

I want to only use Dioxus Fullstack for the Web platform, so I have to separately add fullstack to the web and server features, but this disables the fullstack, i.e., the build is broken/not working in the end.

image

Even though this is not the expected usage, I think it's valid, since it reduces the bloat during development for other platforms and for the release binaries for these platforms.

Steps To Reproduce

Steps to reproduce the behavior:

  • dx new test --subtemplate Bare-Bones -o is_fullstack=false -o is_router=false -o is_tailwind=false -o default_platform=web
  • cd test
  • sed '/default/d' Cargo.toml | sd 'web"]' 'web", "dioxus/fullstack"]' | sed '/web/iserver = ["dioxus/server", "dioxus/fullstack"]' | sponge Cargo.toml
  • dx serve --platform web

Expected behavior

It should be the same as doing

  • dx new test --subtemplate Bare-Bones -o is_fullstack=true -o is_router=false -o is_tailwind=false -o default_platform=web
  • cd test
  • dx serve --platform web

image

Environment:

  • Dioxus version: v0.6.1
  • Rust version: rustc 1.83.0-nightly (fb4aebddd 2024-09-30)
  • OS info: Pop!_OS 22.04
  • App platform: web

Questionnaire

I'm interested in fixing this myself but don't know where to start.
I don't have time to fix this right now, but maybe later.

I found that there is a --fullstack flag present, which is weird, because I never saw it or knew that it is used for something. But it fixes the issue:

dx serve --platform web --fullstack

Though if it's a fix or a workaround, I don't know.