在上一篇文章中那些發生在 CSS 之「前」的魔法 —— 預處理器,我們探討了 CSS 預處理器,並了解為什麼需要使用「 CSS 處理器」。這次讓我們來了解後處理器,特別是 PostCSS 能夠為你幫上什麼忙!文章主要會探討以下幾個重點 (附帶範例):
以下是關係圖表,在開始之前可以回顧一下後處理器的位置。
後處理器會把現有的 CSS 檔案解析後處理,實現某些功能。例如自動添加 Vendor Prefix (Prefixfree)或使用最新的語法(Stylecow)。不過隨著 Vendor Prefix 的式微 在 2022 的現今也很少有要用後處理器的需求了。
最常聽見的 PostCSS 可以是後處理器也可以是預處理器,是個絕大多數人都在用的工具。其他工具基本上在現今都沒有必要了……
PostCSS 幾乎是後處理器的代名詞,不過實際上這個名詞並不太準確,因為它實際上可以預處理,也能後處理。這樣尷尬矛盾的命名他們團隊 Twitter 上也提到過 。
簡單來說,PostCSS 讓你用 Javascript 插件自動化處理你的 CSS,只要想得到的功能,都能在 PostCSS 插件庫(PostCSS.part)中找得到,舉例來說:
解釋完了預處理器的好處,也要了解什麼場合,你不應該用它。
說到底預處理器的功能仍是社群自行開發製作的,一個專案新增多餘的依賴 (Dependency) 並不是一件好事;而非原生的代碼可能在某一天就被原生所取代了,代表可能未來某一天某些預處理器提供的功能被趕上,你可能需要再重寫一遍。
處理器幫助你施作 CSS 在一個更高的抽象級別,可能不了解的人需要花費成本來去維護你的代碼,營造一個更複雜的開發環境,投入額外的時間成本學習。
使用以上這些功能還需要安裝配置與學習,不如直接開始寫 CSS 就好。
最終,要不要使用預處理器?要使用哪一款?關係到團隊與個人的偏好或專案的規模來決定,精進 CSS,不管哪款預處理器都能樣樣通。