Công cụ thu nhỏ có thể được thực thi thông qua thiết bị đầu cuối


35

Tôi đang tìm kiếm một công cụ hoặc một cách để giảm bớt (tương tự như Compress mã của tôi và điều này câu hỏi trên Stack) tất cả các mã trong tôi .xml, .css, .html.jstập tin thông qua thiết bị đầu cuối của Ubuntu. Cuối cùng, tôi sẽ bash script quá trình, nhưng hiện tại tôi chỉ muốn tìm một cái gì đó để kiểm tra. Có một công cụ nào đó mà tôi có thể sử dụng để nén tất cả các định dạng tệp này thông qua thiết bị đầu cuối không?


2
Bạn đã thử một cái gì đó như thế tar -czvf compressed.tar.gz *.xml *.css *.html *.phpnào?
roadmr

1
Tôi đang tìm cách tự nén mã. Một cái gì đó như CSS Minify
DᴀʀᴛʜVᴀᴅᴇʀ

1
Sau đó, tôi nghĩ rằng bạn không yêu cầu nén . Bằng cách nén trên các tệp thông thường (không phải phương tiện như nhạc / video), chúng tôi chủ yếu chỉ xem xét nén không mất dữ liệu, nhưng bạn đang tìm cách giảm thiểu khoảng trắng (trong đó bạn mất dữ liệu này). Và vì việc thu nhỏ là mất mát, bạn không thể giải nén (vì nó không thể đảo ngược). Đối với tôi điều này làm cho nó "không rõ những gì bạn đang hỏi".
gertvdijk

Câu trả lời:


43

Đây không phải là lựa chọn tốt nhất nhưng có lẽ là dễ nhất. Máy nén YUI từ lâu đã được cho là máy nén tốt nhất cho Javascript và CSS, cung cấp 20-40% cải tiến so với các công cụ khai thác khác.

Nó đã được thay thế bởi các dự án mới hơn như Uglify.JS (mà Grunt có thể sẽ đề xuất) nhưng nó vẫn là một điều khá dễ dàng để khởi động và chạy trong Ubuntu.

sudo apt-get install yui-compressor

Đó là nó. Bây giờ bạn có thể chạy yui-compressor myfile.jsvà nó sẽ làm điều kỳ diệu của nó, chỉ là không tốt, hoặc thuận tiện như một ngăn xếp Node / Grunt / Uglify + YUI được cài đặt đúng cách.


15
Không phải tất cả mọi người sử dụng js hoặc css đều sử dụng node.js hoặc thực hiện các dự án node.js. Đây là một khuôn khổ khác để tìm hiểu và cấu hình nếu bạn muốn sử dụng grunt. Có lẩm bẩm là mát mẻ. Nhưng bây giờ, chúng ta đã có đủ để học trước khi chúng ta có thể bắt đầu viết mã. Vì vậy, nút / grunt không phải lúc nào cũng thuận tiện. :) Bản thân tôi sẽ thử đề xuất của bạn về máy nén yui.
Bill Rosmus

2
@BillR Tôi đồng ý với tình cảm nhưng trong khi tôi không có bất kỳ dự án node.js nào, tôi vẫn sử dụng những thứ như lessc và uglify.js vì chúng là những công cụ tốt nhất cho công việc . Tôi không sử dụng Grunt vì tôi đã thay thế nó bằng công cụ của riêng mình nhưng đối với công việc thực tế, tôi không bao giờ tự làm phiền mình chỉ để tránh Node. Nếu bạn muốn ở lại trong ngành, bạn phải theo kịp các thực hành tốt nhất.
Oli

Bạn đang đưa ra giả định rằng sử dụng nút là cách tốt nhất. Có lẽ trong thế giới của bạn không phải là thế giới của mọi người.
Bill Rosmus

2
Bạn đã có năm năm với tôi nhưng tôi không biết quan điểm của bạn là gì ... Bạn vẫn đang sử dụng HTML4 tĩnh với một chút "DHTML" và các tập lệnh CGI? Vẫn đang sử dụng ASP? Hay bạn đã thay đổi mọi thứ khi các công nghệ tốt hơn đã sẵn sàng? Chúng tôi đã có hai điểm riêng biệt đang diễn ra trong này; nó hơi ngớ ngẩn Tôi không quan tâm nếu bạn không thích đào tạo lại, nhưng tôi quan tâm rằng bạn đang sử dụng more-cssgói NPM để giảm thiểu CSS của bạn thì khó hơn so với sử dụng máy nén yui. Không phải vậy. Đó chỉ là một lệnh khác làm điều tương tự tốt hơn.
Oli

1
Lưu ý rằng với cài đặt này, bạn sẽ cài đặt openjkd, một điều mà ai đó sẽ không muốn trong hệ thống.
thực sự là

12

Bạn có thể giảm thiểu js dễ dàng với nút và uglify-js từ dòng lệnh:

  • cài đặt uglify-js với npm install uglify-js -g

  • chạy nó uglifyjs app-test.js > app-test.min.js


Đối với css tôi sẽ đề xuất Clean-css (có lẽ là công cụ khai thác css ổn định nhất trên npm)
sử dụng ví dụ:

cleancss -o public-min.css public.css

Đối với html, thông thường việc thu nhỏ thường không xứng đáng với thời gian bạn đầu tư để thiết lập nó, nhưng tôi đã thử trình khai thác html và đó là một công cụ tuyệt vời.

Bất cứ điều gì bạn làm chỉ cần chắc chắn rằng bạn gzip những gì bạn đang phục vụ.


1
uglify có thể được cài đặt trực tiếp vớisudo apt-get install node-uglify
Gery

Lưu ý rằng uglify-js chỉ dành cho Javascript và không dành cho css hoặc các tệp khác.
Jose Gómez

2
@Gery nếu bạn muốn cài đặt uglifycùng với aptbạn cũng cần cài đặt node-legacy, vì vậy hãy chạysudo apt install node-uglify node-legacy
mxdsp 20/03/2017

Lưu ý rằng cleancsscông cụ CLI hiện có trong clean-css-cligói.
jbg

7

Sử dụng minify - không giống như các đề xuất khác, công cụ này thu nhỏ rất nhiều loại tệp:

CSS     text/css
HTM     text/html
HTML    text/html
JS      text/javascript
JSON    application/json
SVG     image/svg+xml
XML     text/xml

Nó làm một công việc rất kém với javascript.
Federico

2

Không có lý do để thu nhỏ các tệp php (ngoại trừ bạn có không gian đĩa rất hạn chế và muốn sử dụng mọi bit của nó).

Nếu bạn có thể thêm một mục tiêu (Bạn muốn đạt được điều gì và tại sao?), Ai đó có thể chỉ cho bạn một cách tốt hơn.

Các tệp JS và CSS được thu nhỏ trong thời gian chạy và được lưu trong bộ đệm trong hầu hết các dự án web. Có minify ( https://github.com/mrclay/minify ), một "thư viện" php có thể thực hiện chính xác điều này. (cũng có thể được thực thi với php từ thiết bị đầu cuối)

Nhưng hãy nhớ rằng một tệp javascript lớn không cần tải nhanh hơn 5 tệp nhỏ. Nếu bạn cần một lý do và giải pháp cho tuyên bố này, hãy xem http://headjs.com/

Có thể nguồn là với bạn ...


1

Tôi sẽ khuyên bạn nên sử dụng Grunt.js . Đây là một công cụ tự động hóa có sẵn các công cụ khai thác dưới dạng bổ trợ và có thể chạy trong thiết bị đầu cuối của bạn thông qua Node.js. Không cần thiết phải thu nhỏ PHP vì mã thực thi ở phía máy chủ và chỉ đầu ra HTML của nó được gửi đến máy khách.

Bạn có thể tìm thấy các plugin có sẵn ở đây


2
Hãy lưu ý rằng việc chọn Grunt ngụ ý một đường cong học tập.
Rick-777

1

Tôi đã có kết quả tốt với Trình biên dịch đóng cửa .

Trình biên dịch đóng cửa là một công cụ giúp tải xuống JavaScript và chạy nhanh hơn. Thay vì biên dịch từ ngôn ngữ nguồn sang mã máy, nó biên dịch từ JavaScript sang JavaScript tốt hơn. Nó phân tích JavaScript của bạn, phân tích nó, loại bỏ mã chết và viết lại và giảm thiểu những gì còn lại. Nó cũng kiểm tra cú pháp, tham chiếu biến và các loại và cảnh báo về các cạm bẫy JavaScript phổ biến.

Nó được phát triển bởi Google và được viết bằng Java. Nó được đóng gói cho các hệ thống dựa trên Debian closure-compilervà dễ dàng cài đặt trên các hệ thống Ubuntu. Vì nó không sử dụng GUI, nên nó yêu cầu default-jre-headlessgói nhẹ hơn .

Máy nén YUI chậm hơn nhưng kích thước tệp kết quả nhỏ hơn (một chút). Nó cũng in các thông báo cảnh báo hữu ích, tương tự như trình biên dịch cho các ngôn ngữ lập trình khác.

Tài liệu: Bắt đầu

Sử dụng:

closure-compiler --js input.js --js_output_file output.js

Việc đóng cửa thực sự tốt nếu bạn bắt đầu dự án của mình với nó và mở rộng các đối tượng của bạn trong các tệp riêng biệt, v.v. Nhưng đối với một dự án hiện có, nó khá khủng khiếp.
Alexis Wilke

-1

Một tùy chọn khác là sử dụng npxlệnh từ Node.js. npxchạy lệnh của gói Node.js mà không cài đặt rõ ràng.

# Minify JS
npx -p uglify-js uglifyjs -o app.min.js app.js common.js

# Minify CSS
npx clean-css-cli -o style.min.css css/bootstrap.css style.css

# Minify HTML
npx html-minifier index-2.html -o index.html --remove-comments --collapse-whitespace

# XML
npx pretty-data-cli --type xml --minify input.xml > input.min.xml
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.