FileImporter<sync>

一種特殊的匯入器,會將所有載入重新導向至磁碟上的現有檔案。雖然它不像完整的 Importer 強大,但它會自動處理 Sass 功能,例如解析局部檔案和檔案副檔名,以及從磁碟載入檔案。

與所有匯入器一樣,這為 @use 規則@import 規則 實作了自訂的 Sass 載入邏輯。它可以傳遞給 importersimporter

範例

const {pathToFileURL} = require('url');

sass.compile('style.scss', {
importers: [{
// An importer that redirects relative URLs starting with "~" to
// `node_modules`.
findFileUrl(url) {
if (!url.startsWith('~')) return null;
return new URL(url.substring(1), pathToFileURL('node_modules'));
}
}]
});

類型參數

階層結構

  • FileImporter

方法

方法

  • 一個用於將載入(例如 @use@import)部分解析為磁碟上檔案的回呼函式。

    Importer 不同,編譯器會自動處理 FileImporter 的相對載入。有關載入解析方式的更多詳細資訊,請參閱 importers

    拋出

    any - 如果此導入器識別出 url 但判斷其無效,則可能會拋出 Sass 將包裝的例外狀況。如果例外狀況物件具有 message 屬性,則它將被用作包裝例外狀況的訊息;否則,將使用例外狀況物件的 toString()。這表示導入器可以安全地拋出純字串。

    參數

    • url: string

      已載入的網址。由於這可能是相對的,因此它以字串而非 URL 物件表示。

    • context: CanonicalizeContext

    回傳 PromiseOr<null | URL, sync>

    如果此導入器識別出 url,則為絕對 file: URL。這可能只是部分解析:編譯器會根據回傳的 URL 自動尋找 partials索引檔案 和檔案副檔名。導入器也可以選擇回傳完全解析的 URL

    如果此導入器無法識別網址,則應回傳 null,以便其他導入器或 載入路徑 處理它。

    這也可能回傳 Promise,但如果導入器只傳遞給 compileAsynccompileStringAsync,而不是 compilecompileString