Pourquoi un monorepo ?
Les projets Web3 ont souvent plusieurs parties : contracts, frontend, backend, SDK. Un monorepo simplifie la gestion.
Structure recommandée
my-dapp/
├── apps/
│ ├── web/ # Frontend Next.js
│ └── api/ # Backend Node.js
├── packages/
│ ├── contracts/ # Smart contracts
│ ├── sdk/ # SDK TypeScript
│ └── ui/ # Composants partagés
├── turbo.json
└── package.json
Configuration Turborepo
// turbo.json
{
"pipeline": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**"]
},
"test": {
"dependsOn": ["build"]
},
"dev": {
"cache": false
}
}
}
Avantages
- Builds incrémentaux et caching
- Partage de code sans npm publish
- Versionning unifié