PostCSS có tốt hơn Sass không?
Ở đây chúng tôi so sánh giữa less, node-sass, postcss và sass. Trong phần so sánh này, chúng tôi sẽ tập trung vào các phiên bản mới nhất của các gói đó. Các phiên bản hiện tại ít hơn 4. 1. 3, nút-sass 8. 0. 0, postcss 8. 4. 21 và sass 1. 57. 1 Show
ít hơn, CSS tinh gọn hơn. Nó được tác giả vào ngày 1 tháng 1 năm 2011 Khi so sánh các gói đó, bạn nhận thấy rằng postcss là gói phổ biến hơn hiện nay (27.120 Sao trên Github) Trong bài đánh giá của chúng tôi, less có 11.462.069 điểm, node-sass có 7.085.955 điểm, postcss có 172.560.428 điểm và sass có 24.482.282 điểm. Các điểm là một bản tóm tắt về mức độ lớn của cộng đồng và gói được duy trì tốt như thế nào Hãy tìm hiểu sâu hơn và xem xét một số chi tiết khác về các gói đó Các nhà phát triển web yêu thích bộ tiền xử lý Sass CSS. Theo ý kiến của Sass trong Khảo sát trạng thái CSS, mọi nhà phát triển đều biết nó là gì, 89% sử dụng nó thường xuyên và 88% có mức độ hài lòng cao Nhiều gói web bao gồm xử lý Sass, nhưng bạn cũng có thể đang sử dụng PostCSS mà không nhận ra điều đó. PostCSS chủ yếu được biết đến với plugin Autoprefixer, tự động thêm tiền tố nhà cung cấp 5, 6 và 7 vào thuộc tính CSS khi được yêu cầu. Hệ thống plugin của nó có nghĩa là nó có thể làm được nhiều hơn thế… chẳng hạn như biên dịch các tệp 8 mà không cần phải sử dụng trình biên dịch SassHướng dẫn này giải thích cách tạo bộ tiền xử lý CSS tùy chỉnh để biên dịch cú pháp Sass và bổ sung cho nó các tính năng khác. Nó lý tưởng cho bất kỳ ai có yêu cầu CSS cụ thể và biết một chút về Node. js Bắt đầu nhanhMột dự án PostCSS ví dụ có thể được sao chép từ GitHub. Nó yêu cầu nút. js, vì vậy hãy chạy 9 để tìm nạp tất cả các phụ thuộcBiên dịch trình diễn mã nguồn 0 thành 1 bằng cách sử dụng
Tự động biên dịch bất cứ khi nào tệp được thay đổi bằng cách sử dụng ________số 8_______Sau đó thoát xem bằng cách nhấn Ctrl. Cmd + C trong thiết bị đầu cuối Cả hai tùy chọn cũng tạo một bản đồ nguồn tại 2, tham chiếu các tệp nguồn gốc trong công cụ dành cho nhà phát triểnCó thể biên dịch CSS rút gọn ở cấp độ sản xuất mà không có bản đồ nguồn bằng cách sử dụng
Tham khảo tệp 3 để biết thêm thông tinBạn có nên thay thế Sass bằng PostCSS?Không có gì sai với trình biên dịch Sass, nhưng hãy xem xét các yếu tố sau Phụ thuộc mô-đunPhiên bản Dart mới nhất của Sass có thể được cài đặt trên toàn cầu bằng Node. js 4 trình quản lý gói
Biên dịch mã Sass 8 với
Bản đồ nguồn được tạo tự động (_______5_______6 sẽ tắt chúng) hoặc có thể thêm 7 vào tệp nguồn tự động biên dịch khi chúng thay đổiPhiên bản mới nhất của Sass yêu cầu ít hơn 5 MB dung lượng cài đặt PostCSS sẽ yêu cầu ít tài nguyên hơn và trình biên dịch giống như Sass cơ bản với tiền tố tự động và quá trình thu nhỏ cần ít hơn 1MB dung lượng. Trên thực tế, thư mục 8 của bạn sẽ mở rộng lên hơn 60 MB và tăng lên nhanh chóng khi có thêm nhiều plugin. Điều này chủ yếu là 4 cài đặt các phụ thuộc khác. Mặc dù PostCSS có thể không sử dụng chúng, nhưng nó không thể được coi là một giải pháp thay thế nhẹTuy nhiên, nếu bạn đã sử dụng PostCSS cho Autoprefixer hoặc các mục đích khác, Sass có thể không cần thiết Tốc độ xử lýTrình biên dịch Sass chậm, dựa trên Ruby đã biến mất từ lâu và phiên bản mới nhất sử dụng thời gian chạy Dart được biên dịch. nó nhanh PostCSS là JavaScript thuần túy và mặc dù các điểm chuẩn sẽ khác nhau, nhưng nó có thể chậm hơn ba lần khi biên dịch cùng một mã nguồn Tuy nhiên, sự khác biệt về tốc độ này sẽ ít được chú ý hơn nếu bạn đang chạy PostCSS sau Sass. Quy trình hai giai đoạn có thể chậm hơn so với chỉ sử dụng PostCSS, vì phần lớn công việc của nó liên quan đến việc mã hóa các thuộc tính CSS tùy biếnNgôn ngữ Sass bao gồm một tập hợp lớn các tính năng bao gồm các biến, lồng nhau, một phần, mixin, v.v. Có những nhược điểm
PostCSS có thể cấu hình nhiều hơn đáng kể Về bản thân, PostCSS không làm gì cả. Chức năng xử lý yêu cầu một hoặc nhiều plugin có sẵn. Hầu hết thực hiện một tác vụ duy nhất, vì vậy nếu bạn không muốn lồng nhau, đừng thêm plugin lồng nhau. Nếu cần, bạn có thể viết các plugin của riêng mình trong một mô-đun JavaScript tiêu chuẩn có thể khai thác sức mạnh của Node. js Cài đặt PostCSSPostCSS có thể được sử dụng với , nhưng hướng dẫn này chỉ ra cách chạy nó từ dòng lệnh Nếu cần, hãy khởi tạo một Nút mới. dự án js với 2. Thiết lập PostCSS bằng cách cài đặt các mô-đun sau để phân tích cú pháp cơ bản 8 với các phần bổ sung cho các phần, biến, mixin, lồng và tự động thêm tiền tố
Giống như dự án ví dụ, PostCSS và các plugin của nó được cài đặt cục bộ. Đây là một tùy chọn thiết thực nếu các dự án của bạn có thể có các yêu cầu biên dịch khác nhau Ghi chú. PostCSS chỉ có thể được chạy từ tệp JavaScript, nhưng mô-đun 4 cung cấp trình bao bọc có thể được gọi từ dòng lệnh. Mô-đun postcss-scss cho phép PostCSS đọc các tệp 8 nhưng không chuyển đổi chúngCấu hình bộ tiền tố tự độngAutoprefixer sử dụng danh sách trình duyệt để xác định tiền tố của nhà cung cấp nào được yêu cầu theo danh sách các trình duyệt được hỗ trợ của bạn. Dễ dàng nhất để xác định danh sách này là một mảng 6 trong 7. Ví dụ sau thêm tiền tố của nhà cung cấp khi bất kỳ trình duyệt nào có ít nhất 2% thị phần
Bản dựng đầu tiên của bạnThông thường, bạn sẽ có một tệp Sass gốc duy nhất 8 để nhập tất cả các tệp một phần/thành phần được yêu cầu. Ví dụ
Quá trình biên dịch có thể được bắt đầu bằng cách chạy 9, theo sau là tệp đầu vào, tệp 0 và bất kỳ tùy chọn bắt buộc nào. Ví dụ
lệnh này
Theo tùy chọn, bạn có thể thêm 7 để tự động biên dịch khi tệp 8 được sửa đổiTạo tệp cấu hình PostCSSDòng lệnh nhanh chóng trở nên khó sử dụng đối với danh sách plugin dài hơn. Bạn có thể định nghĩa nó dưới dạng tập lệnh 4, nhưng tệp cấu hình PostCSS là tùy chọn dễ dàng hơn cung cấp các khả năng bổ sungCác tệp cấu hình PostCSS là các tệp mô-đun JavaScript có tên 2 và thường được lưu trữ trong thư mục gốc của dự án (hoặc bất kỳ thư mục nào bạn chạy PostCSS từ đó). Mô-đun phải 3 một chức năng duy nhất
Nó đã truyền một đối tượng 4 với các thuộc tính được thiết lập bởi lệnh 5. Ví dụ 0Bạn có thể kiểm tra các thuộc tính này và phản ứng tương ứng — ví dụ: xác định xem bạn có đang chạy ở chế độ 4 và xử lý tệp đầu vào 8 hay không 1Hàm phải trả về một đối tượng có tên thuộc tính khớp với các tùy chọn dòng lệnh 4. Tệp cấu hình sau đây sao chép tệp dài 2PostCSS hiện có thể được chạy bằng lệnh ngắn hơn 3Dưới đây là một số điều cần lưu ý
Nếu bạn muốn 2 nằm trong một thư mục khác, nó có thể được tham chiếu với tùy chọn 6 — chẳng hạn như 7. Trong dự án ví dụ, cấu hình ở trên nằm ở 8. Nó được tham chiếu bằng cách chạy 9, gọi 4Thêm các plugin khácCác phần sau đây cung cấp các ví dụ về các plugin PostCSS phân tích cú pháp 8 bổ sung hoặc cung cấp quá trình xử lý ngoài phạm vi của trình biên dịch SassSử dụng mã thông báo thiết kếMã thông báo thiết kế là một cách bất khả tri về công nghệ để lưu trữ các biến như phông chữ, màu sắc, khoảng cách, v.v. Bạn có thể lưu trữ các cặp giá trị-tên mã thông báo trong tệp JSON 5Sau đó tham khảo chúng trong bất kỳ trang web, Windows, macOS, iOS, Linux, Android hoặc ứng dụng nào khác Mã thông báo thiết kế không được Sass hỗ trợ trực tiếp, nhưng một đối tượng JavaScript có thuộc tính 1 chứa các cặp tên–giá trị có thể được chuyển đến plugin PostCSS postcss-advanced-variables hiện có 6Plugin chuyển đổi tất cả các giá trị thành Sass toàn cầu 2 có thể được sử dụng trong bất kỳ phần nào. Giá trị dự phòng có thể được đặt để đảm bảo một biến có sẵn ngay cả khi nó bị thiếu từ 3. Ví dụ 7Sau đó, các biến mã thông báo có thể được tham chiếu trong bất kỳ tệp 8 nào. Ví dụ 8Trong dự án ví dụ, tệp 5 được xác định, được tải và sử dụng khi chạy 6Thêm hỗ trợ bản đồ SassSass Maps là các đối tượng khóa-giá trị. Hàm 7 có thể tra cứu các giá trị theo tênVí dụ sau xác định các điểm dừng truy vấn phương tiện dưới dạng bản đồ Sass với hỗn hợp 8 để tìm nạp giá trị được đặt tên 9Sau đó, các thuộc tính mặc định và sửa đổi truy vấn phương tiện có thể được xác định trong cùng một bộ chọn. Ví dụ 0Cái nào biên dịch thành CSS 1Plugin postcss-map-get thêm xử lý bản đồ Sass. Cài đặt nó với 2Và cập nhật tệp cấu hình 2 3Thêm Tối ưu hóa truy vấn phương tiệnVì chúng tôi đã thêm các truy vấn phương tiện nên sẽ hữu ích khi kết hợp và sắp xếp chúng theo thứ tự ưu tiên trên thiết bị di động. Ví dụ: CSS sau 4có thể được hợp nhất để trở thành 5Điều này không thể thực hiện được trong Sass, nhưng có thể đạt được với plugin PostCSS postcss-sort-media-queries. Cài đặt nó với 6Sau đó thêm nó vào 2 7Thêm xử lý nội dungQuản lý nội dung không khả dụng trong Sass, nhưng nội dung postcss giúp bạn dễ dàng. Plugin giải quyết các URL hình ảnh CSS, thêm truy xuất bộ đệm, xác định kích thước hình ảnh và nội tuyến các tệp bằng ký hiệu base64. Ví dụ 8biên dịch thành 9Cài đặt plugin với 0Sau đó thêm nó vào 2. Trong trường hợp này, plugin được hướng dẫn xác định vị trí hình ảnh trong thư mục 02 1Thêm thu nhỏcssnano đặt tiêu chuẩn cho việc thu nhỏ CSS. Việc thu nhỏ có thể mất nhiều thời gian xử lý hơn so với các plugin khác, vì vậy nó chỉ có thể được áp dụng trong sản xuất Cài đặt cssnano với 2Sau đó thêm nó vào 2. Trong trường hợp này, quá trình thu nhỏ chỉ xảy ra khi 3 được đặt thành bất kỳ giá trị nào khác ngoài 4 3Đặt 2 thành 07 sẽ kích hoạt quá trình thu nhỏ (và xóa bản đồ nguồn) 4Trong dự án ví dụ, CSS sản xuất có thể được biên dịch bằng cách chạy 08Tiến tới PostCSS?PostCSS là một công cụ mạnh mẽ và có thể định cấu hình, có thể biên dịch các tệp 8 và nâng cao (hoặc hạn chế) ngôn ngữ Sass tiêu chuẩn. Nếu bạn đang sử dụng PostCSS cho Autoprefixer, bạn có thể xóa hoàn toàn trình biên dịch Sass trong khi vẫn giữ nguyên cú pháp mà bạn yêu thíchLiên kết khác
Chia sẻ bài viết nàyCraig Buckler Craig là một nhà tư vấn web tự do ở Vương quốc Anh, người đã xây dựng trang đầu tiên của mình cho IE2. 0 vào năm 1995. Kể từ thời điểm đó, anh ấy đã ủng hộ các tiêu chuẩn, khả năng truy cập và các kỹ thuật HTML5 thực hành tốt nhất. Anh ấy đã tạo các thông số kỹ thuật doanh nghiệp, trang web và ứng dụng trực tuyến cho các công ty và tổ chức bao gồm Nghị viện Vương quốc Anh, Nghị viện Châu Âu, Bộ Năng lượng & Biến đổi Khí hậu, Microsoft, v.v. Anh ấy đã viết hơn 1.000 bài báo cho SitePoint và bạn có thể tìm thấy anh ấy @craigbuckler Tôi nên sử dụng PostCSS hay SASS?Đó là điểm khác biệt lớn nhất giữa Sass và PostCSS. Sass đi kèm với rất nhiều chức năng sẵn có, ngay cả khi bạn không cần một số chức năng đó. PostCSS cho phép bạn chọn chức năng nào bạn muốn thêm (và họ có một lựa chọn khá tuyệt vời về các plugin được tạo độc lập).
Tôi có nên sử dụng PostCSS không?PostCSS là một công cụ rất hữu ích đã xuất hiện được một thời gian . Nó khuyến khích bạn viết nhiều CSS đơn giản hơn và cho phép bạn sử dụng hoặc viết các plugin mạnh mẽ của riêng bạn để chuyển đổi nó.
SASS hay SCSS hay LESS tốt hơn?Cả hai bộ tiền xử lý đều có chung một số thuộc tính. Cả SASS và LESS đều cho phép sử dụng mixin và biến. Tuy nhiên, có một điểm khác biệt là SASS dựa trên Ruby, trong khi LESS sử dụng JavaScript . Nhưng ngay cả điều này cũng không mang lại lợi thế cho một trong hai bộ tiền xử lý so với những bộ tiền xử lý khác.
SASS có còn phù hợp không?Sass dành cho những thứ tĩnh
. Hàm calc, kết hợp với các thuộc tính tùy chỉnh, thường được sử dụng làm ví dụ về một tính năng khiến Sass trở nên lỗi thời. |