Nén mã JS / CSS / HTML API

Nén (minify) JavaScript bằng Terser, CSS bằng CSSO, HTML và JSON, kèm dung lượng và kích thước gzip trước, sau; tự nhận biết loại mã nguồn.

POSThttps://apibox.io.vn/v1/minify
Tiện ích lập trình▶ Dùng thử online

API minify thu nhỏ mã front-end trước khi đưa lên production. JavaScript được xử lý bằng Terser (nén hai lượt, đổi tên biến cục bộ, module=true cho ES module), CSS bằng CSSO (gộp quy tắc, rút gọn màu và giá trị, restructure=false để nén an toàn hơn), JSON được ghi lại không khoảng trắng, còn HTML bỏ comment, bỏ khoảng trắng giữa các thẻ khối và nén luôn các khối <script>, <style> bên trong.

Để trống type để API tự nhận biết loại mã, hoặc chỉ định js, css, html, json. Comment bản quyền (/*! … */, @license, @preserve) được giữ lại. Trong HTML, nội dung <pre> và <textarea> giữ nguyên, giữa các thẻ inline vẫn còn một dấu cách, và minify_js=false / minify_css=false để không nén mã nhúng.

Kết quả gồm mã đã nén và size: số byte đầu vào, đầu ra, phần trăm tiết kiệm và kích thước sau gzip, con số quyết định thời gian tải. Lỗi cú pháp trả về parse_error kèm dòng và cột.

Tham số

TênVị tríKiểuBắt buộcMặc định
codebodystringcóMã nguồn cần nén (tối đa 2.000.000 ký tự).
typebody|querystringkhôngjs, css, html hoặc json (mặc định: tự nhận biết).
manglebody|querybooleankhôngtrueJS: rút gọn tên biến cục bộ.
modulebody|querybooleankhôngfalseJS: coi mã là ES module.
restructurebody|querybooleankhôngtrueCSS: gộp và sắp xếp lại quy tắc.
minify_jsbody|querybooleankhôngtrueHTML: nén script nhúng.
minify_cssbody|querybooleankhôngtrueHTML: nén <style> và style="".

Ví dụ

curl -X POST "https://apibox.io.vn/v1/minify" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"function tinhTong(soThuNhat, soThuHai) {\n  // cộng hai số\n  const tong = soThuNhat + soThuHai;\n  return tong;\n}\nconsole.log(tinhTong(1, 2));"}'

Kết quả trả về

{
  "type": "js",
  "minified": "function tinhTong(n,o){return n+o}console.log(tinhTong(1,2));",
  "size": {
    "input": 144,
    "output": 61,
    "saved_percent": 57.6,
    "gzip_input": 132,
    "gzip_output": 74
  }
}

Ứng dụng

  • Nén tài nguyên trong bước build mà không cần cài công cụ
  • Thu nhỏ template e-mail HTML, landing page
  • Gọn JSON trước khi lưu hoặc gửi đi
  • Đo xem file được lợi bao nhiêu khi minify và gzip

Hỏi đáp

Mã có bị thay đổi hành vi không?

Terser và CSSO chỉ áp dụng các biến đổi an toàn. Nếu script phụ thuộc vào tên hàm, hãy gửi mangle=false.

Có hỗ trợ TypeScript, SCSS không?

Không: hãy biên dịch sang JavaScript hoặc CSS trước rồi mới nén.

Giới hạn kích thước là bao nhiêu?

2.000.000 ký tự mã nguồn mỗi lần gọi.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →