Quản lý Monorepo bằng Turborepo và pnpm: Chia sẻ UI Library và TypeScript Types dễ dàng
Nỗi khổ khi tách riêng nhiều Repository nhỏ Polyrepo Khi công ty phát triển nhiều sản phẩm ví dụ: Website công cộng, Web quản trị Admin Portal, và Mobile App, nếu lưu trữ ở các repo git riêng biệt: -…
☰ Mục lục bài viết (4 phần) Mở / Đóng mục lục
Nỗi khổ khi tách riêng nhiều Repository nhỏ (Polyrepo)#
Khi công ty phát triển nhiều sản phẩm (ví dụ: Website công cộng, Web quản trị Admin Portal, và Mobile App), nếu lưu trữ ở các repo git riêng biệt:
- Bạn phải copy-paste các interface TypeScript (Types/Models) thủ công giữa các repo mỗi khi database thay đổi.
- Bộ UI components chung (Button, Input, Modal) phải publish lên npm private registry mỗi lần sửa một dòng CSS.
- Quản lý phiên bản dependencies bị lệch lạc giữa các dự án.
Monorepo với sự kết hợp của pnpm workspaces và Turborepo là tiêu chuẩn quản lý mã nguồn sạch sẽ nhất hiện nay.
Cấu trúc thư mục Monorepo chuẩn#
my-monorepo/
├── apps/
│ ├── web/ (Next.js / Astro)
│ ├── admin/ (React Dashboard)
│ └── docs/ (Tài liệu)
├── packages/
│ ├── ui/ (Shared React Components & Tailwind)
│ ├── types/ (Shared TypeScript Interfaces & Zod Schemas)
│ ├── eslint-config/
│ └── tsconfig/
├── pnpm-workspace.yaml
└── turbo.json
Sức mạnh của Caching thông minh trong Turborepo#
Turborepo hiểu rõ đồ thị phụ thuộc (Dependency Graph) giữa các package. Khi bạn chạy lệnh build:
pnpm turbo run build
Nếu package ui chưa từng thay đổi code, Turborepo sẽ lấy kết quả từ Cache ngay lập tức (>>> FULL TURBO - 0.05s) mà không cần phải compile lại từ đầu!
Góc thảo luận#
Team bạn đang dùng Monorepo hay Polyrepo? Công cụ build monorepo yêu thích của anh em là Turborepo, Nx hay Lerna?
Xem thêm nội dung liên quan:
Thảo luận
1 phản hồi
Tham gia thảo luận
Bài liên quan trong #Frontend & Web UI
-
Áp dụng Model Context Protocol (MCP) của Anthropic để kết nối AI với Postgres và Docker
Hoàng Nam (Tech Lead) · 💬 1 -
Xây dựng Voice AI Agent thời gian thực với WebRTC và Whisper Live: Độ trễ dưới 500ms
Lan Anh (Senior Frontend) · 💬 1 -
Cấu hình Rate Limiting ở tầng Nginx và API Gateway: Chống DDOS Layer 7 hiệu quả
Đức Huy (DevOps Specialist) · 💬 1 -
Giám sát và Tracing LLM trong Production: Đánh giá LangSmith vs Langfuse
Đức Huy (DevOps Specialist) · 💬 1 -
Cách viết Dockerfile bảo mật: Chạy non-root user, multi-stage và quét vulnerability với Trivy
Đức Huy (DevOps Specialist) · 💬 1