Bạn đã bao giờ tự hỏi tại sao trang web của bạn lại tải chậm đôi khi chưa? Một lý do có thể là do các tệp CSS lớn từ các thư viện như Bootstrap. Hôm nay chúng ta sẽ tìm hiểu về một công cụ thú vị có tên là PurgeCSS có thể giúp tăng tốc trang web của bạn bằng cách loại bỏ CSS không sử dụng!
PurgeCSS giống như một chiếc máy hút bụi cho CSS của bạn. Nó quét các tệp HTML và JavaScript của bạn, kiểm tra những quy tắc CSS nào bạn thực sự sử dụng và loại bỏ những cái không cần thiết. Điều này có thể làm cho tệp CSS của bạn nhỏ hơn nhiều, giúp trang web của bạn tải nhanh hơn.
PurgeCSS hoạt động bằng cách phân tích các tệp nội dung của bạn (HTML, JavaScript, v.v.) và các tệp CSS của bạn, sau đó loại bỏ các quy tắc CSS không sử dụng. Dưới đây là quy trình từng bước:
Nếu bạn có CSS này:
.btn { color: blue; }
.card { border: 1px solid gray; }
.unused-class { font-size: 20px; }
Và HTML này:
<button class="btn">Click me</button>
PurgeCSS sẽ xuất ra:
.btn { color: blue; }
Các style .card
và .unused-class
sẽ bị loại bỏ vì chúng không được sử dụng trong HTML.
Quá trình này có thể giảm đáng kể kích thước tệp, đặc biệt khi sử dụng các framework CSS lớn mà bạn thường chỉ sử dụng một phần nhỏ các style có sẵn.
Để chạy PurgeCSS, chúng ta sử dụng lệnh npx. npx đi kèm với Node.js, phải được cài đặt trước trên máy tính Ubuntu của bạn.
Trước khi sử dụng PurgeCSS, bạn cần cài đặt nó trong dự án của mình. Bạn có thể làm điều này bằng cách sử dụng yarn hoặc npm, là các trình quản lý package phổ biến cho JavaScript. Đây là các lệnh để cài đặt PurgeCSS như một development dependency:
Sử dụng yarn:
$ yarn add purgecss --dev
Hoặc nếu bạn thích npm:
$ npm i -D purgecss
Đây là một ví dụ đơn giản về cách sử dụng PurgeCSS.
$ npx purgecss --css bootstrap.css --content index.html --output style.min.css
Điều này nói với PurgeCSS:
Bạn sẽ thấy rằng style.min.css nhỏ hơn nhiều so với bootstrap.css!
Khi sử dụng PurgeCSS, bạn có thể chỉ định các tệp mà nó nên phân tích để xác định CSS nào đang được sử dụng. Tham số --content linh hoạt và có thể được điều chỉnh cho các cấu trúc dự án và loại tệp khác nhau.
Đối với Laravel Blade template:
--content './resources/**/*.php'
Điều này nói với PurgeCSS xem xét tất cả các tệp PHP (bao gồm các mẫu Blade) trong thư mục resources và các thư mục con của nó.
Đối với Ruby on Rails ERB template:
--content './app/views/**/*.html.erb'
Điều này hướng dẫn PurgeCSS kiểm tra tất cả các tệp ERB trong thư mục views và các thư mục con của nó.
Bạn cũng có thể chỉ định nhiều vị trí nội dung trong một lệnh duy nhất. Ví dụ:
$ npx purgecss --css bootstrap.css --content './index.html' './js/**/*.js' './components/**/*.vue' --output styles.min.css
Lệnh này nói với PurgeCSS:
Bằng cách sử dụng nhiều tham số --content, bạn có thể đảm bảo PurgeCSS phân tích tất cả các tệp liên quan trong dự án của bạn, bất kể chúng nằm ở đâu hoặc loại tệp nào.