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。由于这可能是相对的,因此它表示为字符串,而不是 URL 对象。

    • context: CanonicalizeContext

    返回 PromiseOr<null | URL, sync>

    如果此导入器识别出 url,则为绝对 file: URL。这可能仅部分解析:编译器将根据返回的 URL 自动查找 部分索引文件 和文件扩展名。导入器还可以根据需要返回完全解析的 URL

    如果此导入器无法识别 URL,则应返回 null,以允许其他导入器或 加载路径 处理 它。

    这也可能返回一个 Promise,但如果返回,则只能将导入器传递给 compileAsynccompileStringAsync,而不是 compilecompileString