Files
claude-skills/react-native-skills/rules/monorepo-single-dependency-versions.md
2026-01-30 03:04:10 +00:00

1.3 KiB

title, impact, impactDescription, tags
title impact impactDescription tags
Use Single Dependency Versions Across Monorepo MEDIUM avoids duplicate bundles, version conflicts monorepo, dependencies, installation

Use Single Dependency Versions Across Monorepo

Use a single version of each dependency across all packages in your monorepo. Prefer exact versions over ranges. Multiple versions cause duplicate code in bundles, runtime conflicts, and inconsistent behavior across packages.

Use a tool like syncpack to enforce this. As a last resort, use yarn resolutions or npm overrides.

Incorrect (version ranges, multiple versions):

// packages/app/package.json
{
  "dependencies": {
    "react-native-reanimated": "^3.0.0"
  }
}

// packages/ui/package.json
{
  "dependencies": {
    "react-native-reanimated": "^3.5.0"
  }
}

Correct (exact versions, single source of truth):

// package.json (root)
{
  "pnpm": {
    "overrides": {
      "react-native-reanimated": "3.16.1"
    }
  }
}

// packages/app/package.json
{
  "dependencies": {
    "react-native-reanimated": "3.16.1"
  }
}

// packages/ui/package.json
{
  "dependencies": {
    "react-native-reanimated": "3.16.1"
  }
}

Use your package manager's override/resolution feature to enforce versions at the root. When adding dependencies, specify exact versions without ^ or ~.