インポーター<sync>
型パラメーター
- 
sync extends "sync" | "async" = "sync" | "async"Importer<'sync'>のcanonicalizeとloadは同期的に返す必要がありますが、代わりにcompileとcompileStringに加えて、compileAsyncとcompileStringAsyncに渡すことができます。Importer<'async'>のcanonicalizeとloadは、同期的に返すことも非同期的に返すこともできますが、compileAsyncとcompileStringAsyncでのみ使用できます。
階層
- インポーター
インデックス
プロパティ
メソッド
プロパティ
オプション 非正規スキーム
このインポーターがcanonicalizeによって返されるURLに絶対に使用しないことを約束するURLスキームまたはスキームのセット(:なし)。これらのスキームの1つでURLを返した場合、エラーになります。
これが設定されている場合、非正規スキームを持つURLのcanonicalizeへの呼び出しは、containingUrlが既知の場合は渡されます。
これらのスキームには、小文字のASCII文字、ASCII数字、+、-、および.のみを含めることができます。空にすることはできません。
メソッド
canonicalize
- canonicalize(url: string, context: CanonicalizeContext): PromiseOr<null | URL, sync>
- 
urlがこのインポーターによって認識される場合は、その正規形式を返します。Sassが返された正規URLでスタイルシートをすでにロードしている場合、既存の解析ツリー(および @useのロードされたモジュール)を再利用します。これは、インポーターが、異なるインポーター間でも、同じ正規URLが常に同じスタイルシートを参照することを保証する必要があることを意味します。そのため、インポーターは、相互に区別するために、一意のURLスキームを使用することが推奨されます。可能な限り、カスタムインポーターは、組み込みのファイルシステムインポーターと同じ方法でURLを正規化する必要があります。 - インポーターは、URLのベース名にプレフィックス - _を追加し、URLにすでにこれらの拡張子の1つがない場合は、拡張子- .sassと- .scssを追加して、スタイルシートを検索する必要があります。たとえば、URLが- foo/bar/bazの場合、インポーターは次を探します。- foo/bar/baz.sass
- foo/bar/baz.scss
- foo/bar/_baz.sass
- foo/bar/_baz.scss
 - URLが - foo/bar/baz.scssの場合、インポーターは次を探します。- foo/bar/baz.scss
- foo/bar/_baz.scss
 - インポーターがこれらのURLの複数でスタイルシートを見つけた場合、そのURLがあいまいであることを示す例外をスローする必要があります。拡張子が明示的に指定されている場合、反対の拡張子を持つスタイルシートが存在することが許可されることに注意してください。 
- 可能なパスのいずれも有効でない場合、インポーターは、 - /indexが続くURLで同じ解決を実行する必要があります。上記の例では、次を探します。- foo/bar/baz/index.sass
- foo/bar/baz/index.scss
- foo/bar/baz/_index.sass
- foo/bar/baz/_index.scss
 - 上記のように、インポーターがこれらのURLの複数でスタイルシートを見つけた場合、インポートがあいまいであることを示す例外をスローする必要があります。 
 スタイルシートが見つからない場合、インポーターは nullを返す必要があります。canonicalizeを同じURLで複数回呼び出すと、同じ結果が返される必要があります。canonicalizeの以前の呼び出しで返されたURLでcanonicalizeを呼び出すと、そのURLが返される必要があります。 インポーターからロードされたスタイルシート内の相対ロードは、ロードされたURLを、それを含むスタイルシートの正規URLに対する相対として解決し、そのURLをインポーターのcanonicalizeメソッドに渡すことによって処理されます。たとえば、「ロードの解決」の例上記が、 @use "mixins"を含むスタイルシートを返したとします。- コンパイラーは、現在のスタイルシートの正規URL db:foo/bar/baz/_index.scssに対する相対としてURLmixinsを解決し、db:foo/bar/baz/mixinsを取得します。
- "db:foo/bar/baz/mixins"でcanonicalizeを呼び出します。
- canonicalizeはnew URL("db:foo/bar/baz/_mixins.scss")を返します。
 このため、canonicalizeは、以前のcanonicalize呼び出しで返されたURLに対する相対URLで呼び出されたときに意味のある結果を返す必要があります。 スローany - このインポーターが urlを認識するが、それが無効であると判断した場合、Sassによってラップされる例外をスローする可能性があります。例外オブジェクトにmessageプロパティがある場合、それはラップされた例外のメッセージとして使用されます。それ以外の場合は、例外オブジェクトのtoString()が使用されます。これは、インポーターがプレーンな文字列をスローしても安全であることを意味します。パラメーター- 
url: stringロードされたURL。これは相対である可能性があるため、URLオブジェクトではなく文字列として表現されます。 
- 
context: CanonicalizeContext
 戻り値 PromiseOr<null | URL, sync>このインポーターが urlを認識する場合は絶対URL、認識しない場合はnull。これがnullを返す場合、他のインポーターまたはロードパスがロードを処理する可能性があります。これは Promiseを返すこともありますが、その場合はインポーターはcompileAsyncとcompileStringAsyncにのみ渡すことができ、compileまたはcompileStringには渡すことができません。
load
- load(canonicalUrl: URL): PromiseOr<null | ImporterResult, sync>
- 
指定された canonicalUrlのSassテキストをロードするか、このインポーターが参照するスタイルシートを見つけられない場合はnullを返します。スローany - このインポーターが urlにスタイルシートを見つけたが、何らかの理由でロードに失敗した場合、またはurlがこのインポーターに一意に関連付けられているが、実際のスタイルシートを参照していない場合、インポーターはSassによってラップされる例外をスローする可能性があります。例外オブジェクトにmessageプロパティがある場合、それはラップされた例外のメッセージとして使用されます。それ以外の場合は、例外オブジェクトのtoString()が使用されます。これは、インポーターがプレーンな文字列をスローしても安全であることを意味します。パラメーター- 
canonicalUrl: URLロードするスタイルシートの正規URL。これはcanonicalizeの呼び出しから来ることが保証されていますが、canonicalizeへのすべての呼び出しがloadへの呼び出しにつながるわけではありません。 
 戻り値 PromiseOr<null | ImporterResult, sync>ロードできる場合は canonicalUrlにあるスタイルシートの内容。できない場合はnull。これは Promiseを返すこともありますが、その場合はインポーターはcompileAsyncとcompileStringAsyncにのみ渡すことができ、compileまたはcompileStringには渡すことができません。
- 
@use規則および@import規則のカスタムSassロードロジックを実装するオブジェクトです。 importersまたはimporterに渡すことができます。ディスク上のファイルにリダイレクトするだけのインポーターは、代わりにFileImporterインターフェイスを使用することをお勧めします。
ロードの解決
これは、カスタムインポーターを使用してロードを解決するプロセスです
@use "db:foo/bar/baz"を検出します。"db:foo/bar/baz"を指定してcanonicalizeを呼び出します。new URL("db:foo/bar/baz/_index.scss")を返します。new URL("db:foo/bar/baz/_index.scss")を指定してloadを呼び出します。複数のインポーターとロードパスを使用してロードが解決される方法の詳細については、importersを参照してください。
例