重大變更:混合宣告
CSS 正在改變處理巢狀規則與宣告混合的方式,我們希望確保 Sass 的行為與其一致。
目前為止的故事目前為止的故事 永久連結
過去,如果您在 Sass 中混合巢狀規則和宣告,它會將所有宣告拉到規則的開頭,以避免不必要地重複外部選擇器。例如:
CSS 輸出
.example {
color: red;
font-weight: normal;
}
.example a {
font-weight: bold;
}
當原生 CSS 巢狀首次引入時,它的行為方式相同。然而,經過一番考慮後,CSS 工作小組決定讓宣告按照它們在文件中出現的順序套用更有意義,如下所示:
CSS 輸出
.example {
color: red;
}
.example a {
font-weight: bold;
}
.example {
font-weight: normal;
}
棄用舊方法棄用舊方法 永久連結
- Dart Sass
- 自 1.77.7 起
- LibSass
- ✗
- Ruby Sass
- ✗
為了通知用戶即將發生的變更,並給予他們時間調整樣式表以確保相容性,在 Sass 中,巢狀規則 *之後* 使用宣告目前已被棄用。在未來的版本中,Dart Sass 將會更改為符合原生 CSS 巢狀產生的順序。
如果您想提前採用新的 CSS 語法,您可以將巢狀宣告包在 & {}
中。
CSS 輸出
.example {
color: red;
}
.example a {
font-weight: bold;
}
.example {
font-weight: normal;
}
我可以隱藏警告嗎?我可以隱藏警告嗎? 永久連結
Sass 提供了一套強大的選項,用於管理您看到的棄用警告以及何時看到它們。
簡潔模式和詳細模式簡潔模式和詳細模式 永久連結
預設情況下,Sass 以簡潔模式運行,它只會針對每種類型的棄用警告印出五次,之後就會隱藏其他警告。這有助於確保用戶知道他們需要注意即將發生的重大變更,同時又不會產生過多的控制台訊息。
如果您以詳細模式運行 Sass,它將會印出它遇到的 *每個* 棄用警告。這在追蹤修復棄用問題的剩餘工作時非常有用。您可以使用命令列上的 --verbose
旗標 或 JavaScript API 中的 verbose
選項 來啟用詳細模式。
⚠️ 注意!
從 JS API 運行時,Sass 不會在編譯之間共享任何資訊,因此預設情況下,它會針對 *每個* 編譯的樣式表印出五個警告。但是,您可以透過編寫(或要求您最喜歡的框架 Sass 外掛程式的作者編寫)一個 自訂的 Logger
來解決此問題,該記錄器每個棄用只印出五個錯誤,並且可以在多個編譯之間共享。
隱藏相依性中的棄用警告隱藏相依性中的棄用警告 永久連結
有時,您的相依性中會有您無能為力的棄用警告。您可以使用命令列上的 --quiet-deps
旗標 或 JavaScript API 中的 quietDeps
選項 來隱藏來自相依性的棄用警告,同時仍然為您的應用程式印出這些警告。
就這個旗標而言,「相依性」是指任何不是從入口點樣式表進行一系列相對載入的樣式表。這表示任何來自載入路徑的內容,以及大多數透過自訂匯入器載入的樣式表。
隱藏特定棄用警告隱藏特定棄用警告 永久連結
如果您知道某個特定的棄用對您來說不是問題,您可以使用命令列上的 --silence-deprecation
旗標 或 JavaScript API 中的 silenceDeprecations
選項 來隱藏該特定棄用的警告。