Minification
Thu nhỏ (Giảm Kích thước Mã)
Quy trình loại bỏ tất cả ký tự không cần thiết khỏi mã nguồn (khoảng trắng, bình luận, tên biến dài) mà không thay đổi chức năng, giảm kích thước tệp để truyền mạng nhanh hơn.
Chi tiết kỹ thuật
Các trình thu nhỏ JavaScript (Terser, esbuild, SWC) thực hiện phân tách token, phân tích AST, loại bỏ mã chết (tree shaking), xáo trộn tên biến (đổi tên thành ký tự đơn), gấp hằng số và kết hợp câu lệnh. Các trình thu nhỏ CSS (cssnano, Lightning CSS) hợp nhất quy tắc trùng lặp, rút ngắn giá trị màu (#ffffff thành #fff) và loại bỏ thuộc tính thừa. Các trình thu nhỏ HTML thu gọn khoảng trắng và loại bỏ thẻ đóng tùy chọn. Source map (tệp .map) cho phép gỡ lỗi bằng cách ánh xạ vị trí mã đã thu nhỏ trở lại vị trí mã nguồn gốc.
Ví dụ
```javascript
// Simple CSS minifier
function minifyCSS(css) {
return css
.replace(/\/\*[\s\S]*?\*\//g, '') // remove comments
.replace(/\s+/g, ' ') // collapse whitespace
.replace(/\s*([{};:,])\s*/g, '$1') // remove around symbols
.trim();
}
// 1024 bytes → 612 bytes (40% reduction)
```