Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Build performant React Native and Expo apps with best practices for lists, animations, and navigation
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
rules/monorepo-single-dependency-versions.md
1---2title: Use Single Dependency Versions Across Monorepo3impact: MEDIUM4impactDescription: avoids duplicate bundles, version conflicts5tags: monorepo, dependencies, installation6---78## Use Single Dependency Versions Across Monorepo910Use a single version of each dependency across all packages in your monorepo.11Prefer exact versions over ranges. Multiple versions cause duplicate code in12bundles, runtime conflicts, and inconsistent behavior across packages.1314Use a tool like syncpack to enforce this. As a last resort, use yarn resolutions15or npm overrides.1617**Incorrect (version ranges, multiple versions):**1819```json20// packages/app/package.json21{22"dependencies": {23"react-native-reanimated": "^3.0.0"24}25}2627// packages/ui/package.json28{29"dependencies": {30"react-native-reanimated": "^3.5.0"31}32}33```3435**Correct (exact versions, single source of truth):**3637```json38// package.json (root)39{40"pnpm": {41"overrides": {42"react-native-reanimated": "3.16.1"43}44}45}4647// packages/app/package.json48{49"dependencies": {50"react-native-reanimated": "3.16.1"51}52}5354// packages/ui/package.json55{56"dependencies": {57"react-native-reanimated": "3.16.1"58}59}60```6162Use your package manager's override/resolution feature to enforce versions at63the root. When adding dependencies, specify exact versions without `^` or `~`.64