Package configuration reference
Follow this skill whenever you touch tooling for an app or package (Vite, Vitest, or Turbo). The guidance keeps tooling aligned with existing workspace conventions.
Vite + Vitest wiring
- •
Start from the React app templates in
apps/mvvm-reactandapps/task-flow-ui. The Vite configs there define the alias maps (e.g., linking@repo/models,@repo/view-models,@web-loom/mvvm-core,@web-loom/ui-core, etc., to../../packages/...) and the plugin stack (@vitejs/plugin-react-swc). Extend the alias resolver whenever you expose a new shared package; keepoptimizeDeps.includein sync when dependencies must be pre-bundled. Seereferences/vite-and-vitest.mdfor the patterns. - •
Vitest uses the same alias map so tests resolve workspace packages the way builds do. The shared
testconfig blocks (globals,jsdomenvironment, coverage filters,setupFiles) are already captured inapps/mvvm-react/vitest.config.ts.
Turbo repository pipelines
- •Root
turbo.jsongoverns caching and task dependencies (build,lint,check-types,test,dev). Keep new tasks aligned with these definitions: e.g.,devis markedcache: falseandpersistent: true, whiletestdepends on^build. When adding a new app/package, give it the standard scripts (dev,build,lint,test,check-types) so Turbo can orchestrate it out-of-the-box. Refer toturbo.jsonfor inputs/outputs and to the rootpackage.jsonscripts (e.g.,npm run dev,npm run test) that wrapturbo run.
TypeScript + workspace sharing
- •
Every package relies on
@repo/typescript-configvariants (base.json,react-library.json, etc.). Extend or compose those configs when adding new tsconfig(s). Make suretsconfig.jsonreferences the correct rootpackages/typescript-config. When publishing or building, runnpm run check-types/tsc --noEmitvia Turbo so emitteddistartifacts stay accurate. - •
Share code through the
apps/*andpackages/*workspace layout defined in the rootpackage.json. Depend on packages with workspace ranges ("@repo/shared": "*") and export from each package viaexports/main/typesso Vite/Vitest/Turbo resolve them correctly.
Verification checklist
- •
npm run lint,npm run check-types,npm run test(or filtered Turbo task) succeed from the workspace root. - •
npm run dev(orturbo run dev --filter=<app>...) starts the intended app—watch the console for alias resolution warnings. - •Any new package gets referenced aliases updated in the Vite/Vitest configs and the
packages/typescript-configsetups.
See references/vite-and-vitest.md for concrete config snippets derived from the existing apps.