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