Parcel v2.4.0

一月時,我們宣布了 Parcel CSS,一個用 Rust 編寫的超快速新 CSS 解析器、編譯器和壓縮器。從那時起,我們一直努力改進它,並新增了 許多新功能,並提升了效能。今天,我們很興奮地宣布 Parcel CSS 現在是 Parcel v2.4.0 中預設的 CSS 轉換器和壓縮器!

新功能

#

以下是自我們最初宣布以來,已新增到 Parcel CSS 的一些主要功能摘要。

有了這些功能,Parcel CSS 現在可以用來取代許多常見的基於 PostCSS 的設定,包括 autoprefixer、postcss-preset-env、postcss-modules 和 cssnano。

升級

#

在 Parcel v2.4.0 中,預設的 CSS 轉換器和壓縮器已更新為使用 Parcel CSS。在大部分專案中,這應該是無縫的。不過,有幾件事需要注意。

PostCSS 仍然獲得完全支援,因此您目前的設定應仍能正常運作。不過,我們已在 Parcel 中新增警告,當我們建議您更新專案設定以改善建置效能時會通知您。

cssnano 設定

#

如果您在專案中有 cssnano 設定檔,例如 .cssnanorc,預設情況下將不再使用它。建置專案時,您可能會在主控台中看到關於此問題的警告。如果您不再需要這個設定檔,可以將其刪除,或設定 .parcelrc 以繼續使用 cssnano。請參閱 文件 以取得更多詳細資訊。

autoprefixer 和 postcss-preset-env

#

在大部分情況下,Parcel 現在會自動處理供應商前綴和轉譯 CSS 以配合您的瀏覽器目標,就像處理 JavaScript 一樣。您只需在 package.json 中設定 browserslist 欄位,Parcel 便會處理其餘部分。

Parcel 還支援選擇性編譯草稿語法,例如 巢狀自訂媒體查詢偽類別多載。請參閱 新文件 以取得有關 Parcel 所有 CSS 轉譯功能的更多資訊。

如果您之前使用 autoprefixer 和 postcss-preset-env,則可以從 PostCSS 設定檔中移除它們以提升建置效能。如果它們是您唯一使用的 PostCSS 外掛程式,則可以完全刪除 PostCSS 設定檔。查看文件以取得更多詳細資料。

CSS 模組

#

當使用 .module.css 字尾命名時,Parcel 會自動處理 CSS 模組。先前,這是在幕後由 postcss-modules 提供支援,但現在則由 Parcel CSS 處理。

您也可以啟用將所有 CSS 檔案處理為 CSS 模組。先前,這是透過 PostCSS 設定檔中的頂層 modules 選項來完成的。此選項已移至 @parcel/transformer-css 的 package.json 中的設定檔金鑰。請參閱文件以取得更多資訊。

嚴格剖析

#

Parcel CSS 剖析器比 PostCSS 更嚴格。當選擇器、at 規則或宣告無效時,它會產生錯誤。這很有用,因為它避免了在瀏覽器中載入時意外發送會被忽略的程式碼。

在依賴項方面,Parcel CSS 也更符合規格。如果您在 CSS 自訂屬性中具有 url() 依賴項,則當您透過相對路徑參照檔案時,可能會看到新的錯誤。這是模稜兩可的,因為 CSS 規格實際上是根據 var() 的使用位置,而不是自訂屬性的定義位置來解析這些內容。Parcel 現在要求自訂屬性中的網址使用絕對路徑來定義。請參閱文件以取得詳細資料。

其他變更

#

Parcel v2.4.0 也帶來了其他許多錯誤修正和改進,包括升級 SWC 以改善 JavaScript 死碼消除,以及支援類別靜態初始化區塊。查看 變更日誌 以查看所有改進的完整清單。