Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
64 lines
1.3 KiB
Markdown
64 lines
1.3 KiB
Markdown
---
|
|
title: Use Single Dependency Versions Across Monorepo
|
|
impact: MEDIUM
|
|
impactDescription: avoids duplicate bundles, version conflicts
|
|
tags: 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):**
|
|
|
|
```json
|
|
// 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):**
|
|
|
|
```json
|
|
// 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 `~`.
|