apps/mountain-max/game/README.md

Mountain Max Game

Mountain Max Game

Turbo Cache Antipattern

This app has a local turbo.json that intentionally bypasses Turborepo's dependency-based cache invalidation:

{
  "tasks": {
    "build": {
      "dependsOn": [],
      ...
    }
  }
}

What this does

  • dependsOn: [] - The build task does not depend on any other tasks, including ^build (build tasks from workspace dependencies)
  • The cache only invalidates when files in THIS directory change
  • Changes to workspace dependencies will NOT trigger a rebuild

Why this is an antipattern

Turborepo's default dependsOn: ["^build"] ensures that if a dependency's code changes, your app rebuilds with the updated dependency. By removing this:

  1. If a shared package changes, this app may use stale code
  2. You can get inconsistent builds between local dev and CI
  3. Debugging becomes harder when builds don't reflect actual dependency changes

Why we did it anyway

This app has zero workspace dependencies - it only uses external npm packages. So ^build was triggering unnecessary cache misses when unrelated workspace packages changed.

Keep this app independent

This game is designed to be completely standalone. Adding any workspace:* dependency would itself be an antipattern. It should remain fully independent from the rest of the monorepo, only sharing the build toolchain.