進階轉換
什麼是進階轉換?
某些最佳化並不適用於所有情況;與我們預設捆綁的那些不同,進階轉換都帶有一定程度的風險。對於每種類型的轉換,我們都記錄了它必須對您的 CSS 做出的假設,才能確保轉換的安全性。這些轉換大多屬於以下一種類型或兩種。
假設串接
此轉換假設通過 cssnano 的 CSS 是網站運行所需的全部 CSS;它不會從任何其他來源導入資源。如果您的樣式以某種方式與第三方樣式交互,或者您使用多個樣式表而不是將它們串接起來,或者您通過 JavaScript 注入 CSS,那麼這*可能*會產生問題。
一個很好的例子是 postcss-merge-idents;為了確保此轉換的安全性,任何使用它們的 @keyframes
規則和選擇器都必須在同一個檔案中。
更改語義
此轉換會從語義上更改 CSS;它可能會根據 CSS 的某些特性移除樣式,或者可能會更新值以使 CSS 整體更小。根據轉換的確切操作,這*可能*是不希望的,因為它可能會在某些情況下更改您網站的外觀。
一個很好的例子是 autoprefixer;此轉換通過移除過時的廠商前綴來更改 CSS 語義。為了確保此轉換的安全性,您的 browserslist 設定必須反映您網站選擇支援的瀏覽器。
使用進階轉換
進階轉換預設不包含在 cssnano 中,因此您需要與 cssnano 一起安裝預設集
npm install cssnano-preset-advanced --save-dev
然後,您可以使用 我們的預設集指南 中提到的任何技術來載入它。例如,使用 package.json
{
"name": "awesome-application",
"cssnano": {
"preset": "advanced"
}
}
您有進階轉換的想法嗎?
我們是否錯過了進一步壓縮 CSS 的機會?您可以在我們的下一份指南中了解如何貢獻。
最後更新時間:2024 年 6 月 5 日星期三 10:27:34 GMT