Máy nén JavaScript tốt nhất hiện có là gì? Tôi đang tìm kiếm một công cụ:
- dễ sử dụng
- có tốc độ nén cao
- Tạo kết quả cuối cùng đáng tin cậy (không làm rối mã)
Máy nén JavaScript tốt nhất hiện có là gì? Tôi đang tìm kiếm một công cụ:
Câu trả lời:
Gần đây tôi đã phát hành UglifyJS , một trình nén JavaScript được viết bằng JavaScript (chạy trên nền tảng NodeJS Node.js , nhưng nó có thể dễ dàng sửa đổi để chạy trên bất kỳ công cụ JavaScript nào, vì nó không cần bất kỳ phần Node.js
bên trong nào ). Nó nhanh hơn nhiều so với cả YUI Compressor và Google Clos , nó nén tốt hơn YUI trên tất cả các tập lệnh mà tôi đã thử nghiệm và nó an toàn hơn so với Đóng (biết cách xử lý "eval" hoặc "với").
Ngoài việc xóa khoảng trắng, UglifyJS cũng thực hiện như sau:
foo["bar"]
thành foo.bar
nơi có thểPS: Ồ, nó cũng có thể "làm đẹp". ;-)
Xem lại câu hỏi này một vài năm sau đó, UglifyJS , dường như là lựa chọn tốt nhất cho đến thời điểm hiện tại.
Như đã nêu dưới đây, nó chạy trên nền tảng NodeJS, nhưng có thể dễ dàng sửa đổi để chạy trên bất kỳ công cụ JavaScript nào.
--- Câu trả lời cũ bên dưới ---
Google phát hành Closure Compiler mà dường như được tạo ra các tập tin nhỏ nhất cho đến nay như đã thấy ở đây và ở đây
Trước đó, các tùy chọn khác nhau như sau
Về cơ bản Packer thực hiện công việc tốt hơn khi nén ban đầu, nhưng nếu bạn định gzip các tập tin trước khi gửi trên dây (mà bạn nên làm) thì YUI Compressor có kích thước nhỏ nhất.
Các thử nghiệm đã được thực hiện trên mã btw jQuery.
@ daniel james đề cập đến trong chương trình nén bình luận cho thấy Packer dẫn đầu bảng xếp hạng về độ nén tốt nhất, vì vậy tôi đoán ymmv
\uxxxx
theo mặc định .. sử dụng ví dụ --charset UTF-8
(nếu bạn chắc chắn rằng bạn cho trình duyệt biết về nó bằng cách nào đó)
Máy nén YUI là con đường để đi. Nó có tốc độ nén tuyệt vời, được thử nghiệm tốt và được sử dụng trong số nhiều trang web hàng đầu, và, tốt, cá nhân tôi khuyên dùng.
Tôi đã sử dụng nó cho các dự án của mình mà không có một lỗi JavaScript hay trục trặc nào. Và nó có tài liệu tốt đẹp.
Tôi chưa bao giờ sử dụng khả năng nén CSS của nó, nhưng chúng cũng tồn tại. Nén CSS cũng hoạt động tốt.
Lưu ý: Mặc dù / bộ đóng gói / đạt được tốc độ nén tốt hơn so với YUI Compressor của Dean Edwards , tôi đã gặp phải một số lỗi JavaScript khi sử dụng nó.
npm install packer
. (= D
Tôi sử dụng ShrinkSafe từ dự án Dojo - thật đặc biệt vì nó thực sự sử dụng trình thông dịch JavaScript ( Rhino ) để đối phó với việc tìm các ký hiệu trong mã và hiểu phạm vi của chúng, v.v ... giúp đảm bảo rằng mã sẽ hoạt động khi xuất hiện đầu kia, trái ngược với rất nhiều công cụ nén sử dụng regex để làm tương tự (điều này không đáng tin cậy).
Tôi thực sự có một nhiệm vụ MSBuild trong Dự án triển khai web trong giải pháp Visual Studio hiện tại của tôi chạy một kịch bản lần lượt chạy tất cả các tệp JS của giải pháp thông qua ShrinkSafe trước khi chúng tôi triển khai và nó hoạt động khá tốt.
EDIT: Nhân tiện , "tốt nhất" là mở để tranh luận, vì các tiêu chí cho "tốt nhất" sẽ thay đổi tùy thuộc vào nhu cầu của dự án. Cá nhân, tôi nghĩ ShrinkSafe là một sự cân bằng tốt; đối với một số người nghĩ kích thước nhỏ nhất == tốt nhất, nó sẽ không đủ.
EDIT: Điều đáng chú ý là máy nén YUI cũng sử dụng Rhino.
Nếu bạn sử dụng Packer, chỉ cần đi xa tùy chọn 'thu nhỏ biến' và gzip mã kết quả. Tùy chọn base62 chỉ dành cho nếu máy chủ của bạn không thể gửi các tệp được nén. Trình đóng gói với 'vars thu nhỏ' đạt được khả năng nén YUI tốt hơn, nhưng có thể gây ra lỗi nếu bạn bỏ qua dấu chấm phẩy ở đâu đó.
Base62 về cơ bản là gzip của một người nghèo, đó là lý do tại sao gzipping mã base62-ed cung cấp cho bạn các tệp lớn hơn gzipping mã co-var-ed.
Trong tìm kiếm viên đạn bạc, tìm thấy câu hỏi này. Dành cho Ruby on Rails http://github.com/sstephenson/sprockets
Đây là mã nguồn của một httpHandler thực hiện điều đó, có thể nó sẽ giúp bạn
bananascript.com được sử dụng để cho tôi kết quả tốt nhất.
Máy tính KJS
http://opensource.seznam.cz/KJScompress/index.html
Kjscompress / csskompress là tập hợp của hai ứng dụng (kjscompress a csscompress) để xóa các khoảng trắng và nhận xét không quan trọng khỏi các tệp có chứa JavaScript và CSS. Cả hai đều là các ứng dụng dòng lệnh cho hệ điều hành GNU / Linux.