Công cụ này làm gì
Rút gọn (minify) loại bỏ mọi thứ mà trình duyệt không cần để chạy code của bạn: khoảng trắng, dấu xuống dòng, chú thích và tên dài. Tệp nhỏ hơn tải nhanh hơn, giúp cải thiện thời gian tải trang và Core Web Vitals, đặc biệt trên mạng di động.
Công cụ này rút gọn JavaScript bằng Terser, trình rút gọn được webpack, Rollup và Vite sử dụng, và CSS bằng CSSO, công cụ còn tái cấu trúc stylesheet: rút ngắn mã màu (#ffffff thành #fff), bỏ đơn vị và giá trị thừa (0px 0px thành 0), và gộp các quy tắc có chung selector hoặc khai báo.
Cách sử dụng
- Dán code vào ô Đầu vào, thả tệp
.jshoặc.cssvào đó, hoặc nhấn Ví dụ. - Chọn JavaScript hoặc CSS.
- Với JavaScript, Rút ngắn tên biến đổi tên biến cục bộ và tham số thành một chữ cái. Tên được export và tên toàn cục không bao giờ bị thay đổi.
- Với CSS, Gộp các quy tắc trùng lặp kết hợp các quy tắc có cùng khai báo.
- Sao chép hoặc tải kết quả xuống. Bộ đếm kích thước dưới mỗi ô cho thấy bạn đã tiết kiệm được bao nhiêu.
Nếu JavaScript có lỗi cú pháp, thông báo lỗi sẽ hiển thị dòng và cột để bạn nhảy tới đó.
Ví dụ
// Sum the price of every item
export function cartTotal(items, discountPercent = 0) {
const subtotal = items.reduce(function (sum, item) {
return sum + item.price * item.quantity
}, 0)
return subtotal * (1 - discountPercent / 100)
}
trở thành
export function cartTotal(t,r=0){return t.reduce(function(t,r){return t+r.price*r.quantity},0)*(1-r/100)}
Khi nào nên dùng
Hãy dùng nó cho những việc nhanh, làm một lần: một đoạn code cho CDN, một script nội tuyến trong email HTML, một bookmarklet, hoặc để xem một thư viện có thể nhỏ đến mức nào. Trong dự án thực tế, bundler của bạn nên rút gọn ở mỗi lần build để mã nguồn vẫn dễ đọc.
Câu hỏi thường gặp
› Code của tôi có bị tải lên đâu không?
Không. Terser và CSSO chạy bên trong trình duyệt của bạn, nên mã nguồn độc quyền không bao giờ rời khỏi thiết bị.
› Rút gọn có làm hỏng JavaScript của tôi không?
Terser chỉ áp dụng những biến đổi giữ nguyên hành vi với code hợp lệ. Code phụ thuộc vào tên hàm hoặc tên biến lúc chạy (ví dụ qua Function.name) có thể bị ảnh hưởng khi rút ngắn tên; khi đó hãy tắt "Rút ngắn tên biến".
› Vì sao "Gộp các quy tắc trùng lặp" là tùy chọn với CSS?
Việc gộp sẽ di chuyển các khai báo giữa các quy tắc. Điều đó an toàn với hầu hết mọi stylesheet, nhưng nếu CSS của bạn phụ thuộc vào thứ tự chính xác của các quy tắc có cùng độ ưu tiên, tắt nó đi sẽ đảm bảo giữ thứ tự gốc.
› Những chú thích nào được giữ lại?
Khi bật "Giữ chú thích giấy phép", các chú thích bắt đầu bằng /*! hoặc chứa @license hay @preserve được giữ lại, như hầu hết giấy phép mã nguồn mở yêu cầu. Mọi chú thích khác bị xóa.