StringOptions<sync>
類型參數
-
sync extends "sync" | "async"
這讓 TypeScript 檢查器可以驗證非同步 Importer、FileImporter 和 CustomFunction 沒有傳遞給 compile 或 compileString。
階層
- Options<sync>
- StringOptions
輸入
選用
importer
選用
loadPaths
搜尋由 @use
和 @import
等規則載入的樣式表的路径。
載入路徑 loadPath
等同於以下 FileImporter
{
findFileUrl(url) {
// Load paths only support relative URLs.
if (/^[a-z]+:/i.test(url)) return null;
return new URL(url, pathToFileURL(loadPath));
}
}
選用
syntax
選用
url
輸出
選用
charset
- Dart Sass
- 自 1.54.0 版本起
- Node Sass
- ✗
如果設定為 true
,編譯器可能會在輸出非 ASCII CSS 時,在檔案開頭加上 @charset "UTF-8";
或 U+FEFF(位元組順序標記)。
如果設定為 false
,編譯器永遠不會輸出這些位元組序列。這在串接或嵌入 HTML <style>
標籤時非常理想。(輸出仍將會是 UTF-8。)
預設值
true
選用
sourceMap
Sass 是否應該產生原始碼對應表。如果有的話,原始碼對應表將會以 sourceMap 的形式提供。
⚠️ 注意!
Sass 不會自動將 sourceMappingURL
註釋添加到產生的 CSS 中。這取決於呼叫者自行添加,因為呼叫者完全了解 CSS 和原始碼對應表之間的相對位置,以及它們將如何提供給瀏覽器。
預設值
false
選用
sourceMapIncludeSources
選用
style
編譯後 CSS 的 OutputStyle。
範例
const source = `
h1 {
font-size: 40px;
code {
font-face: Roboto Mono;
}
}`;
let result = sass.compileString(source, {style: "expanded"});
console.log(result.css.toString());
// h1 {
// font-size: 40px;
// }
// h1 code {
// font-face: Roboto Mono;
// }
result = sass.compileString(source, {style: "compressed"})
console.log(result.css.toString());
// h1{font-size:40px}h1 code{font-face:Roboto Mono}
外掛程式
選用
函式
在所有樣式表中可用的額外內建 Sass 函式。此選項接受一個物件,其鍵是您為 @function 規則
撰寫的 Sass 函式簽名,而其值是 CustomFunction。
函式會傳遞 Value 的子類別,並且必須返回相同的類別。如果返回值包含 SassCalculation,它們將在返回之前被簡化。
撰寫自訂函式時,重要的是使其盡可能地使用者友善,並盡可能符合 Sass 核心函式設定的標準。以下是一些需遵循的良好準則:
使用
Value.assert*
方法,例如 assertString,將未類型化的Value
物件轉換為更具體的類型。對於直接作為參數傳遞的值,也請傳入參數名稱。這可確保使用者在將錯誤類型傳遞給您的函式時,會收到良好的錯誤訊息。個別的類別可能具有更具體的
assert*
方法,例如 assertInt,應盡可能使用。在 Sass 中,每個值都算作一個列表。您應該使用 asList 將所有值視為列表,而不是嘗試檢測 SassList 類型。
操作具有中繼資料(逗號與空格分隔、括號與不括號、引號與不引號、單位)的值(如列表、字串和數字)時,輸出中繼資料應與輸入中繼資料相符。
如有疑問,列表應預設為逗號分隔,字串應預設為引號,數字應預設為無單位。
在 Sass 中,列表和字串使用以 1 為基底的索引,並使用負索引從值的末尾開始索引。函式應遵循這些慣例。sassIndexToListIndex 和 sassIndexToStringIndex 可用於自動執行此操作。
Sass 中的字串索引是指 Unicode 字碼點,而 JavaScript 字串索引是指 UTF-16 字碼單元。例如,字元 U+1F60A 笑臉帶笑眼是一個單獨的 Unicode 字碼點,但在 UTF-16 中表示為兩個字碼單元(`0xD83D` 和 `0xDE0A`)。因此,在 JavaScript 中,`“a😊b”.charCodeAt(1)` 返回 `0xD83D`,而在 Sass 中 `str-slice("a😊b", 1, 1)` 返回 `"😊"`。函式應遵循 Sass 的慣例。sassIndexToStringIndex 可用於自動執行此操作,並且 sassLength getter 可用於以字碼點為單位存取字串的長度。
範例
sass.compileString(`
h1 {
font-size: pow(2, 5) * 1px;
}`, {
functions: {
// Note: in real code, you should use `math.pow()` from the built-in
// `sass:math` module.
'pow($base, $exponent)': function(args) {
const base = args[0].assertNumber('base').assertNoUnits('base');
const exponent =
args[1].assertNumber('exponent').assertNoUnits('exponent');
return new sass.SassNumber(Math.pow(base.value, exponent.value));
}
}
});
選用
importers
控制 Sass 如何解析像是 @use
和 @import
等規則載入的客製化匯入器。
載入會按以下順序嘗試解析:
用於載入目前樣式表的匯入器,其載入的 URL 會解析為相對於目前樣式表的標準 URL。
依序處理 importers 中的每個 Importer、FileImporter 或 NodePackageImporter。
依序處理 loadPaths 中的每個載入路徑。
如果以上方法皆未返回 Sass 檔案,則載入失敗,Sass 會擲出錯誤。
訊息
選用
alertAscii
如果此值為 `true`,則編譯器將在其錯誤和警告訊息中僅使用 ASCII 字元。否則,它也可能會使用非 ASCII 的 Unicode 字元。
預設值
false
選項
alertColor
如果這個值是 true
,編譯器將會在錯誤和警告訊息中使用 ANSI 色碼。如果它是 false
,則不會使用這些色碼。如果它是未定義的,編譯器將會根據使用者是否正在使用互動式終端機來決定是否使用顏色。
選項
fatalDeprecations
一組要被視為致命錯誤的棄用項目。
如果在編譯期間遇到任何提供的類型的棄用警告,編譯器將會回報錯誤。
如果提供了 Version
,則該編譯器版本中所有作用中的棄用項目都將被視為致命錯誤。
相容性
dart: "1.74.0", node: false
選項
futureDeprecations
一組提前選擇啟用的未來棄用項目。
這裡傳遞的未來棄用項目將被編譯器視為作用中,並在必要時發出警告。
相容性
dart: "1.74.0", node: false
選項
logger
選用
quietDeps
如果此選項設為 true
,Sass 將不會印出由依賴項引起的警告。「依賴項」定義為任何透過 loadPaths 或 importers 載入的檔案。相對於入口點導入的樣式表不被視為依賴項。
這對於隱藏您無法自行修復的棄用警告很有用。然而,也請通知您的依賴項這些棄用警告,以便它們能盡快得到修復!
⚠️ 注意!
如果呼叫 compileString 或 compileStringAsync 時沒有提供 url,它載入的*所有*樣式表都將被視為依賴項。由於它沒有自己的路徑,它載入的所有內容都來自載入路徑,而不是相對導入。
預設值
false
選用
silenceDeprecations
要忽略的一組啟用的棄用警告。
如果在編譯期間遇到任何提供的棄用警告類型,編譯器將會忽略它。
⚠️ 注意!
您所依賴的已棄用功能最終將會失效。
相容性
dart: "1.74.0", node: false
選用
verbose
預設情況下,Dart Sass 每次編譯只會印出五個相同的棄用警告,以避免在控制台中充斥大量的訊息。如果您將 verbose
設為 true
,它將會印出遇到的每個棄用警告。
預設值
false
可以傳遞給 compileString 或 compileStringAsync 的選項。
如果沒有傳遞 importer 欄位,則如果將
file://
URL 傳遞給 url 欄位,則入口點檔案可以載入相對於自身的檔案。如果傳遞了該欄位,則入口點檔案會使用它來載入相對於自身的檔案。