Own CLI, Waku.js becomes an internal dependency

Own CLI, Waku.js becomes an internal dependency

Fumapress now ships its own fumapress CLI and manages Waku.js as a regular dependency, so apps no longer install waku or react-server-dom-webpack themselves. Fresh installs only need fumapress, Fumadocs, React, and Vite.

Migration:

  • Remove waku and react-server-dom-webpack from your dependencies.
  • Add vite to your devDependencies if it isn't there yet.
  • Replace waku dev/waku build/waku start scripts with fumapress dev/fumapress build/fumapress start.
  • Rename waku.config.ts to vite.config.ts: it is a plain Vite config now, use defineConfig from vite and move the vite field's contents to the top level.
  • Waku-specific options (basePath, srcDir, distDir, privateDir, rscBase, and the deployment adapter) moved into the press() plugin options in vite.config.ts.
  • Delete src/pages.gen.ts if present, it is stale output of Waku's route typegen (disabled by Fumapress) and its waku/router type imports no longer resolve.

Custom server entries (src/waku.server.tsx) keep using Waku APIs directly — install waku yourself in that case, matching the version pinned by Fumapress.

Auto-dedupe framework packages

The press() Vite plugin now adds detected framework packages (Fumadocs, Fumapress plugins, and other packages with a React peer dependency) to resolve.dedupe, preventing duplicated React contexts when a package manager instantiates them more than once. The manual resolve.dedupe: ["fumadocs-ui"] workaround is no longer necessary.

Last updated on

On this page