Monorepo với Turborepo và pnpm

Monorepo là gì?

Monorepo là một repo chứa nhiều package/app. Ưu điểm: chia sẻ code dễ, refactor xuyên package, CI một chỗ. Nhược: repo lớn, cần tool quản lý dependency và build. Turborepo và pnpm workspace là lựa chọn phổ biến cho JS/TS.

pnpm workspace

pnpm-workspace.yaml khai báo các package (apps/*, packages/*). pnpm install link nội bộ; pnpm --filter <pkg> add <dep> thêm dependency cho từng package. Node_modules gọn nhờ symlink.

Turborepo

Turborepo quản lý task (build, test, lint) và pipeline. Chạy chỉ package thay đổi và phụ thuộc (incremental). Cache output để lần sau không chạy lại. Cấu hình turbo.json: pipeline và dependency giữa task.

Bình luận (0)

Đang tải bình luận...