重大變更: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
選項 來隱藏該特定棄用警告的警告。