Files
dioxus/packages/cli-opt/Cargo.toml
T
Jonathan Kelley bdeedc13eb feat: router-based wasm bundle splitting (#3683)
* feat: wasm-split base implementation

* kinda sorta works with the cli

* okay great it actually works

* fix: cache busting for chunks

* cleaned up version

* it works with the router

* wip: migrate to a faster linear solution using id remapping

* add a good harness

* it works completely on the docsite

* the super tight build works too

* make parallelizable

* works on the docsite but not the harness

* light cleanups, fix for both harness and docsite

* make codegen smaller by extract some shared functions to prevent monos

* chunking works, but tbd on tuning heuristics

* extract used module

* wip: cleaning up module

* wip: much better understanding of how imports work

* fix the call graph

* working again...

* wip: thinking about ifuncs

* ifunc approach works

* yes the ifunc approach works!!

* it all works completely even with chunks

* small cleanups

* comments

* actually locate all of the symbols

* clean up final implementation

* clean up tomls, revert some mono changs

* clean up, add some more comments / docs in places

* hoist more packages

* clean up impl a bit more

* clean cli

* move harness to playwright

* update playwright

* extract codgen

* add lazy to components

* Add docs to split loader

* clippy

* typos

* clippy, don't generate splits if not on wasm

* whoops, const

* Typos and docs

* enable optimizations in ci

* add optimizations to ci

* add wasm-split router feature

* parallel playwright?

* fix no case check

* disable pre-compress... think that might be the issue

* better logging, no default pre-compress, caching of shared symbols
* Fix: compressing assets

* fix non-interactive logging for serve

* cache playwright even on failure, use the cli with optimizations

* fix prebuild

* fix playwright webserver
2025-02-13 18:54:38 -08:00

70 lines
3.0 KiB
TOML

[package]
name = "dioxus-cli-opt"
edition = "2021"
version.workspace = true
authors = ["Jonathan Kelley", "Evan Almloff"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/DioxusLabs/dioxus/"
homepage = "https://dioxuslabs.com"
description = "CLI optimizations for dioxus-cli"
keywords = ["dom", "ui", "gui", "react"]
[dependencies]
anyhow = { workspace = true }
manganis = { workspace = true }
manganis-core = { workspace = true }
object = {version="0.36.0", features=["wasm"]}
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
const-serialize = { workspace = true, features = ["serde"] }
tracing = { workspace = true }
rayon = "1.8.0"
# Image compression/conversion
# - JPEG
mozjpeg = { version = "0.10.7", default-features = false, features = [
"parallel",
] }
# - PNG
imagequant = "4.2.0"
png = "0.17.9"
# Image format/conversion
image = { version = "0.25", features = ["avif"] }
# CSS Minification
lightningcss = { version = "1.0.0-alpha.60", features = ["browserslist", "into_owned"] }
# SCSS Processing
grass = "0.13.4"
codemap = "0.1.3"
# Js minification - swc has introduces minor versions with breaking changes in the past so we pin all of their crates
swc_allocator = { version = "=2.0.0", default-features = false }
swc_atoms = { version = "=3.0.2", default-features = false }
swc_bundler = { version = "=7.0.0", default-features = false }
swc_cached = { version = "=1.0.0", default-features = false }
swc_common = { version = "=5.0.0", features = ["tty-emitter"], default-features = false }
swc_config = { version = "=1.0.0", default-features = false }
swc_config_macro = { version = "=1.0.0", default-features = false }
swc_ecma_ast = { version = "=5.0.1", default-features = false }
swc_ecma_codegen = { version = "=5.0.1", default-features = false }
swc_ecma_codegen_macros = { version = "=1.0.0", default-features = false }
swc_ecma_loader = { version = "=5.0.0", features = ["cache", "node"], default-features = false }
swc_ecma_minifier = { version = "=7.0.1", default-features = false }
swc_ecma_parser = { version = "=6.0.2", default-features = false }
swc_ecma_transforms_base = { version = "=7.0.0", default-features = false }
swc_ecma_transforms_macros = { version = "=1.0.0", default-features = false }
swc_ecma_transforms_optimization = { version = "=7.0.1", default-features = false }
swc_ecma_usage_analyzer = { version = "=7.0.0", default-features = false }
swc_ecma_utils = { version = "=7.0.0", default-features = false }
swc_ecma_visit = { version = "=5.0.0", default-features = false }
swc_eq_ignore_macros = { version = "=1.0.0", default-features = false }
swc_fast_graph = { version = "=6.0.0", default-features = false }
swc_graph_analyzer = { version = "=5.0.0", default-features = false }
swc_macros_common = { version = "=1.0.0", default-features = false }
swc_parallel = { version = "=1.0.1", default-features = false }
swc_timer = { version = "=1.0.0", default-features = false }
swc_visit = { version = "=2.0.0", default-features = false }
browserslist-rs = { version = "=0.16.0" }