Định dạng & nén JavaScript
Làm đẹp JavaScript hoặc nén thật sự kèm rút gọn tên biến
Về công cụ này
Làm đẹp JavaScript với thụt lề và khoảng cách nhất quán — bung một bundle đi kèm ra để đọc xem nó thật sự làm gì, hoặc dọn dẹp đoạn mã vừa dán từ console. Bộ nén thì là hàng thật: Terser phân tích mã của bạn thành AST, loại bỏ mã chết, rút ngắn tên biến cục bộ và cắt chú thích — đúng bộ máy mà các bundler dùng khi lên production.
Vì việc nén dựa trên AST, nó không bao giờ làm hỏng mã đang chạy theo kiểu mà các “bộ nén” dựa trên biểu thức chính quy vẫn gây ra: chuỗi, template literal, regex và những ca biên của ASI đều do một bộ phân tích thật sự xử lý. Lỗi cú pháp được báo kèm vị trí thay vì cho ra một kết quả hỏng.
Terser chỉ được nạp khi bạn nén lần đầu, nhờ đó trang vẫn nhẹ, và nó chạy hoàn toàn trong trình duyệt của bạn — mã nguồn độc quyền không bao giờ rời khỏi máy bạn.
Câu hỏi thường gặp
- Mã của tôi sẽ nhỏ đi bao nhiêu?
- Mã viết tay thường giảm 30–60% trước khi gzip: khoảng trắng, chú thích và những cái tên cục bộ dài chiếm chừng đó. Mã vốn đã qua bundler thì co lại ít hơn nhiều — nó từng đi qua đúng phép biến đổi này một lần rồi.
- Việc nén có làm đổi hành vi không?
- Phép nén và rút gọn tên vẫn giữ nguyên ngữ nghĩa: chỉ tên cục bộ bị đổi, còn việc loại mã chết chỉ bỏ những nhánh chứng minh được là không thể chạy tới. Ngoại lệ kinh điển là loại mã dựa vào Function.prototype.name hay toString() của chính hàm nó.
- Công cụ có bung ngược được mã production lấy từ một website không?
- Bộ định dạng khôi phục khoảng trắng và cấu trúc, giúp luồng điều khiển đọc được — nhưng tên biến gốc cùng chú thích thì mất vĩnh viễn; bạn sẽ chỉ thấy a, b, c. Muốn gỡ lỗi nghiêm túc thì hãy ưu tiên source map nếu trang đó có kèm theo.
- Nó có hỗ trợ TypeScript hay JSX không?
- Không — cả hai đều cần bộ phân tích riêng. Hãy biên dịch sang JavaScript trước (tsc, esbuild), rồi mới định dạng hoặc nén phần kết quả ở đây.