Chuyển đến nội dung
SPCXTools

Nén JavaScript

Nén mã JavaScript bằng Terser — file nhỏ hơn, hoạt động không đổi.

Chạy cục bộ — tệp không bao giờ rời khỏi thiết bị của bạn

Đang tải công cụ…

Cách sử dụng Nén JavaScript

  1. 1Dán mã JavaScript vào ô Input, hoặc nhấn Sample.
  2. 2Mã sau khi nén sẽ tự động xuất hiện ở bên phải.
  3. 3Tùy chọn rút gọn tên biến và giữ lại chú thích bản quyền.
  4. 4Sao chép kết quả hoặc tải xuống dưới dạng minified.js.

Giảm dung lượng JavaScript

JavaScript thường là phần nặng nhất của một trang web. Mỗi kilobyte đều phải được tải về, phân tích cú pháp và thực thi trước khi trang có thể tương tác. Việc nén mã (minify) có thể giảm một nửa dung lượng hoặc hơn. Công cụ này sử dụng Terser, trình nén cốt lõi của hầu hết các công cụ build hiện đại, để xóa khoảng trắng và chú thích, rút gọn tên biến và nén mã an toàn — ngay trên trình duyệt của bạn.

Tính năng

  • Engine Terser hỗ trợ chuẩn ES2015+ hiện đại.
  • Nén mã: loại bỏ mã không dùng (dead-code), gộp hằng số và rút gọn cú pháp.
  • Rút gọn tên biến (mangling) cục bộ (tùy chọn).
  • Giữ lại chú thích bản quyền theo yêu cầu.
  • So sánh dung lượng theo byte và phần trăm.
  • Riêng tư: mã được xử lý trực tiếp trên máy của bạn.

Mức giảm dung lượng thông thường

Mã nguồn Mức giảm thông thường
Mã ứng dụng có nhiều chú thích 50–70%
Mã nguồn thư viện 40–60%
Mã đã được viết gọn 15–30%
Mã đã được nén (minify) từ trước 0–5%

Việc phân phối các file đã nén (minify) kết hợp với chuẩn nén gzip hoặc Brotli thường giúp giảm thêm 60–75% dung lượng truyền tải.

Mẹo nhỏ

  • Giữ lại mã nguồn gốc — mã đã nén rất khó đọc và gỡ lỗi (debug). Hãy sử dụng source map trong quá trình build để gỡ lỗi trên môi trường production.
  • Nén mã ở bước build cho môi trường production; công cụ này lý tưởng cho các script dùng một lần, đoạn mã ngắn (snippet), bookmarklet và các dự án không dùng công cụ đóng gói (bundler).
  • Kiểm tra lại sau khi nén, đặc biệt là với các đoạn mã phụ thuộc vào tên hàm hoặc eval.

Các công cụ liên quan

Nén stylesheet với Công cụ nén CSS, làm đẹp dữ liệu với Công cụ định dạng JSON, hoặc mã hóa script để nhúng với Base64.

Câu hỏi thường gặp

Công cụ nén JavaScript có tác dụng gì?
Nó loại bỏ khoảng trắng và chú thích, rút ngắn tên biến cục bộ và tên hàm (mangling), đồng thời viết lại mã thành các dạng ngắn hơn — ví dụ như loại bỏ mã không bao giờ chạy tới và đơn giản hóa biểu thức — mà không làm thay đổi chức năng của mã.
Cú pháp JavaScript nào được hỗ trợ?
Terser hỗ trợ JavaScript hiện đại (ES2015 trở về sau), bao gồm arrow functions, classes, modules, async/await và optional chaining. TypeScript và JSX cần phải được biên dịch sang JavaScript trước.
Việc rút ngắn tên biến có an toàn không?
Terser chỉ đổi tên các biến và hàm cục bộ, không bao giờ đổi tên biến toàn cục hay thuộc tính của object, do đó mã của bạn vẫn sẽ hoạt động bình thường. Nếu mã phụ thuộc vào tên hàm lúc thực thi (ví dụ fn.name), hãy tắt tính năng rút ngắn tên.
Tại sao tôi bị lỗi cú pháp?
Công cụ nén phải phân tích cú pháp (parse) mã của bạn trước. Lỗi thường do thiếu dấu ngoặc, dấu ngoặc kép, hoặc do cú pháp không phải là JavaScript — chẳng hạn như khai báo kiểu của TypeScript hay JSX. Thông báo lỗi sẽ cho biết chi tiết vấn đề.
Mã của tôi có bị tải lên máy chủ không?
Không. Terser chạy trực tiếp trên trình duyệt, do đó mã nguồn của bạn sẽ không bao giờ rời khỏi thiết bị.