Files
browser.js/CONTRIBUTING.md
2026-09-25 08:51:43 -04:00

1.2 KiB

Development Setup

Node.js 22.18+ and pnpm are required. Everything else goes through ./cv (.\cv.ps1 on Windows, or pnpm cv), which installs dependencies, fetches dreamland at its pinned commit, builds the rust rewriter and only rebuilds what changed.

./cv chrome        # browser.js dev server (chrome + wisp + isolation zone + rspack watch)
./cv dev           # scramjet's own dev server (demo page)
./cv build         # build everything
./cv build chrome  # just the frontend and what it needs
./cv build wasm    # just the rust rewriter
./cv test          # runway tests (args are forwarded, e.g. --headed, --parallel 4)
./cv npm           # release build + pnpm pack of every published package
./cv               # help, including every target and command

The rewriter needs rust nightly plus wasm-bindgen-cli, wasm-opt and wasm-snip; if cargo is installed, cv offers to install the rest for you (--yes skips the prompt).

Useful flags: --why explains why a task runs, --dry shows the plan, --force ignores the change tracking. Each package declares its tasks in a cv.ts next to its package.json; the runner lives in packages/scramjet/packages/cv.