| name | running-scripts |
| description | How to run scripts in this pnpm + turbo monorepo. Covers turbo task filtering, caching, package-local scripts, and common pitfalls. |
Running Scripts
Key Principle
Always run from root directory unless you specifically need package-local behavior. Turbo handles dependencies automatically.
Common Commands
Building
pnpm turbo build
pnpm turbo build --filter=@kitz/core
pnpm turbo build --filter=@kitz/assert...
pnpm turbo build --filter=@kitz/core --force
Type Checking
pnpm turbo check:types
pnpm turbo check:types --filter=@kitz/assert
Linting
pnpm turbo check:lint
pnpm turbo check:lint --filter=@kitz/core
Package Validation
pnpm turbo check:package
pnpm turbo check:package --filter=@kitz/core
Testing
pnpm vitest packages/core/src/arr/_.test.ts --run
pnpm vitest packages/core/src/arr/ --run
pnpm turbo test
Formatting
pnpm format
pnpm format:check
Development Mode
pnpm turbo dev --filter=@kitz/core
Release
pnpm release
Turbo Cache
Turbo caches task outputs. If you change source files, it rebuilds. If nothing changed, it replays cached output.
Cache hit = "replaying logs" in output (task skipped)
To force fresh run:
pnpm turbo build --force
Or delete the build folder:
rm -rf packages/core/build && pnpm turbo build --filter=@kitz/core
Package-Local Scripts
Some packages have scripts in scripts/ directories that aren't npm scripts. Run with tsx:
tsx packages/assert/scripts/generate-builder.ts
Common Pitfalls
| Problem | Solution |
|---|
| Cache hit when you expected rebuild | Use --force or delete build/ folder |
| Tests stuck in watch mode | Always use --run flag with vitest |
| Build order wrong | Turbo handles this via dependsOn: ["^build"] |
Notes
- Task dependencies and caching are configured in
turbo.json at project root