重大變更:meta.feature-exists()

meta.feature-exists() 函式已經很久沒有新增任何新功能,現在已被棄用。使用者應使用其他方法來判斷新功能是否可用。

過去,Sass 使用 meta.feature-exists() 函式(也可用作全域 feature-exists() 函式)讓作者在編譯樣式表時偵測各種新的語言功能是否可用。然而,隨著時間的推移,事實證明絕大多數新的 Sass 功能都可以用更直接的方式偵測,或者根本不需要偵測。

此函式現已棄用,並將在 Dart Sass 2.0.0 中移除。由於 Dart Sass 現在是唯一官方支援的 Sass 實作,且所有版本的 Dart Sass 都支援 meta.feature-exists() 支援的所有功能,因此可以安全地移除所有現有的使用方式。

許多新功能可以使用 meta.function-exists()meta.mixin-exists() 或 [meta.global-variable-exists()] 偵測。其他功能可以使用表達式層級的語法來偵測,例如使用 calc(1) == 1 來判斷目前版本的 Sass 是否支援一級計算。

過渡期過渡期永久連結

相容性
Dart Sass
自 1.78.0 起
LibSass
Ruby Sass

首先,我們會針對所有 feature-exists 的使用發出棄用警告。

在 Dart Sass 2.0.0 中,meta.feature-exists() 將不再存在。嘗試呼叫它會引發錯誤,而嘗試呼叫全域 feature-exists() 函式將被視為一般的 CSS 函式呼叫。

我可以隱藏警告嗎?我可以隱藏警告嗎?永久連結

Sass 提供了一套強大的選項,用於管理您看到的棄用警告以及何時看到這些警告。

簡潔模式與詳細模式簡潔模式與詳細模式 永久連結

預設情況下,Sass 以簡潔模式運行,它只會針對每種類型的棄用警告顯示五次,之後就會隱藏其他警告。這有助於確保使用者知道他們需要注意即將發生的重大變更,同時又不會產生過多的控制台訊息。

如果您以詳細模式運行 Sass,它將會顯示遇到的*每個*棄用警告。這在追蹤修復棄用警告時剩餘的工作時很有用。您可以在命令列上使用 --verbose 旗標 或在 JavaScript API 中使用 verbose 選項 來啟用詳細模式。

⚠️ 注意!

JS API 運行時,Sass 不會在編譯之間共享任何資訊,因此預設情況下,它會針對*每個*編譯的樣式表顯示五次警告。但是,您可以透過撰寫(或請您最愛框架的 Sass 外掛程式作者撰寫)一個 自訂 Logger 來解決此問題,該記錄器只會針對每個棄用警告顯示五次錯誤,並且可以在多次編譯之間共用。

隱藏依賴項中的棄用警告隱藏依賴項中的棄用警告 永久連結

有時,您的依賴項中有一些您無能為力的棄用警告。您可以使用命令列上的 --quiet-deps 旗標 或 JavaScript API 中的 quietDeps 選項 來隱藏來自依賴項的棄用警告,同時仍然顯示應用程式本身的棄用警告。

就這個旗標而言,「依賴項」是指任何並非僅由入口點樣式表的一系列相對載入所組成的樣式表。這表示任何來自載入路徑的內容,以及大多數透過自訂匯入器載入的樣式表。

隱藏特定棄用警告隱藏特定棄用警告 永久連結

如果您知道某個特定棄用警告對您來說不是問題,您可以使用命令列上的 --silence-deprecation 旗標 或 JavaScript API 中的 silenceDeprecations 選項 來隱藏該特定棄用警告的警告。