CLI & Builds

@effuse/cli owns the development, type-checking, manifest, and production build pipeline.

Commands

pnpm effuse dev --port 5173 --host 127.0.0.1
pnpm effuse typecheck
pnpm effuse build --preset node
pnpm effuse manifest
CommandPurpose
effuse devHMR, SSR, and watched server route/middleware registries
effuse typecheckApplication TypeScript validation
effuse buildClient and server production output
effuse manifestInspect routes/actions or generate a typed client module

Build presets

The production builder accepts node, bun, vercel, netlify, and cloudflare. Use --client-only only when the application intentionally has no SSR, API routes, actions, or server middleware.

pnpm effuse build --preset bun
pnpm effuse build --preset cloudflare
pnpm effuse build --client-only

Generated server registry

During development the CLI watches src/server/api, src/server/actions, and server middleware files. Changes regenerate a lazy import registry without pulling server modules into the browser bundle. Production builds preserve the same route signatures and report collisions or handler/file path drift.

Typed manifest client

pnpm effuse manifest \
  --client-out src/generated/server-client.ts \
  --client-factory createServerClient

Generated code should be committed only when the team intentionally reviews manifest changes in source control. Otherwise generate it during build and verify that the workspace is clean afterward.

CI gate

pnpm install --frozen-lockfile
pnpm effuse typecheck
pnpm effuse build --preset node

Run application tests before the build and exercise the generated server fetch handler in process. A successful client-only build is not evidence that server routes, middleware, or adapters are valid.

Next Steps