Skip to content

Allow an optimized development profile for Web runs #196

Description

@zcourts

Problem

fission run --target web invokes wasm-pack --dev, which produces fully unoptimized (opt-level=0) WebAssembly. For non-trivial retained UI trees, async state completion and client-side route changes can update promptly but the following synchronous build/layout/paint frame can remain visibly delayed. The same application is materially more responsive with fission run --target web --release, confirming that execution profile rather than navigation or network latency is the controlling factor.

The current CLI exposes only --dev or --release; fission.toml does not provide a Web development Cargo profile/build-environment setting. A workspace-wide [profile.dev] opt-level = 1 is an undesirable workaround because it also changes unrelated native/backend development builds, while target rustflags can accidentally override release optimization.

Suggested direction

Allow a project to select an optimized Web development profile, for example through a fission.toml Web build profile or a CLI --profile <cargo-profile> option passed through to wasm-pack/Cargo. A framework-recommended fast-dev profile (opt-level=1, debug information retained, incremental where supported) would preserve useful development diagnostics and much of the hot-reload cycle while making browser interaction representative enough for UI work.

Acceptance

  • Web projects can select an optimized non-release Cargo profile without changing other targets.
  • fission run, fission build, and generated Web build scripts use the same selected profile semantics.
  • --release remains fully release-optimized and is not weakened by development configuration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions