Nếu bạn vẫn đang dùng lodash - giảm 97% bundle chỉ với một dòng trong package.json (es-toolkit)
(toss.tech)Đây là bài viết tổng hợp quá trình es-toolkit, thư viện tiện ích JavaScript thay thế lodash do đội frontend của Toss tạo ra, vượt mốc 10 triệu lượt tải mỗi tuần trên npm.
- Bắt đầu từ câu hỏi vào năm 2024: “Đã từng có thư viện JS nào từ Hàn Quốc được dùng trên toàn cầu chưa?”
- Sau khi
lodashđược thiết kế từ 10 năm trước, môi trường đã thay đổi rất nhiều với ES Modules, tree shaking, tối ưu hóa của engine V8, TypeScript..., nhưng cấu trúc của nó vẫn giữ nguyên; nhóm xem đây là cơ hội để thiết kế lại từ đầu - So với
lodash, kích thước bundle giảm tối đa 97%, hiệu năng runtime tăng 2~3 lần, độ bao phủ kiểm thử đạt 100% - Ví dụ: với 5 hàm
groupBy,keyBy,pick,omit,debounce,lodash-eskhoảng ~30KB, cònes-toolkitkhoảng ~1KB - Thông qua
es-toolkit/compat, có thể thay thế drop-in tương thích 100% vớilodash. Chỉ cần đổi một dòng trongpackage.jsontừ"lodash": "npm:es-toolkit@^1.44.0"là có thể chuyển đổi mà không cần sửa mã - Microsoft, Yarn, Storybook, IBM, Recharts, Ink... đã tự nguyện áp dụng. Gần đây Dify cũng đang tiến hành migration từ
lodash - Tăng trưởng đều đặn mà không cần khoảnh khắc viral: 100K → 500K → 1M → 5M → 10M
- Ủy ban mã nguồn mở của Toss cũng đang đồng thời phát triển các thư viện khác như
overlay-kit,use-funnel,suspensive
2 bình luận
Hmm..
Thông thường thì sẽ dùng
lodash-es, nhưng nếu là hàng nội địa và tương thích 100% thì cũng đáng để thử một lần.Mà dạo này mình không dùng lodash đã bao lâu rồi nhỉ...