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は、生成されたCSSにsourceMappingURL
コメントを自動的に追加しません。これは、呼び出し元が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}
プラグイン
オプション
functions
すべてのスタイルシートで利用可能な追加の組み込みSass関数。このオプションは、@function rule
で記述するように、キーがSass関数シグネチャであり、値がCustomFunctionであるオブジェクトを受け取ります。
関数にはValueのサブクラスが渡され、同じものを返す必要があります。戻り値にSassCalculationが含まれている場合、返される前に簡略化されます。
カスタム関数を作成するときは、できるだけユーザーフレンドリーで、Sassのコア関数によって設定された標準にできるだけ近づけることが重要です。従うべき良いガイドラインをいくつか示します。
assertStringのような
Value.assert*
メソッドを使用して、型付けされていないValue
オブジェクトをより具体的な型にキャストします。引数として直接渡された値の場合は、引数名も渡します。これにより、ユーザーが間違った型を関数に渡したときに、適切なエラーメッセージが表示されます。個々のクラスには、assertIntのようなより具体的な
assert*
メソッドがある場合があります。可能な場合は使用する必要があります。Sassでは、すべての値がリストとしてカウントされます。SassList型を検出しようとするのではなく、asListを使用して、すべての値をリストとして扱う必要があります。
リスト、文字列、およびメタデータ(コンマ区切りかスペース区切りか、括弧で囲まれているか否か、引用符付きか引用符なし、単位)を持つ数値などの値を操作する場合、出力メタデータは入力メタデータと一致する必要があります。
不明な場合は、リストはデフォルトでコンマ区切り、文字列はデフォルトで引用符付き、数値はデフォルトで単位なしにする必要があります。
Sassでは、リストと文字列は1から始まるインデックスを使用し、負のインデックスを使用して値の末尾からインデックスを作成します。関数はこれらの規則に従う必要があります。sassIndexToListIndexおよびsassIndexToStringIndexを使用すると、これを自動的に行うことができます。
Sassの文字列インデックスはUnicodeコードポイントを参照しますが、JavaScriptの文字列インデックスはUTF-16コード単位を参照します。たとえば、文字U+1F60ASMILINGFACEWITHSMILINGEYESは単一のUnicodeコードポイントですが、UTF-16では2つのコード単位(
0xD83D
と0xDE0A
)として表されます。したがって、JavaScriptでは、"a😊b".charCodeAt(1)
は0xD83D
を返しますが、Sassでは、str-slice("a😊b", 1, 1)
は"😊"
を返します。関数はSassの規則に従う必要があります。sassIndexToStringIndexを使用すると、これを自動的に行うことができ、sassLengthゲッターを使用して、コードポイントでの文字列の長さにアクセスできます。
例
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
@use
や@import
のようなルールからのSassのロード解決方法を制御するカスタムインポーターです。
ロードは、次の順序で試行することによって解決されます。
現在のスタイルシートをロードするために使用されたインポーター。ロードされたURLは、現在のスタイルシートの正規URLを基準に解決されます。
Importer、FileImporter、またはNodePackageImporterは、importersの順序で指定します。
loadPathsの各ロードパスを順番に指定します。
これらのいずれもSassファイルを返さない場合、ロードは失敗し、Sassはエラーをスローします。
メッセージ
オプション
alertAscii
これがtrue
の場合、コンパイラーはエラーメッセージと警告メッセージでASCII文字のみを使用します。それ以外の場合は、非ASCIIのUnicode文字も使用する場合があります。
デフォルト値
false
オプション
alertColor
これがtrue
の場合、コンパイラーはエラーおよび警告メッセージでANSIカラーエスケープコードを使用します。false
の場合は、これらを使用しません。未定義の場合、コンパイラーはユーザーがインタラクティブ ターミナルを使用しているかどうかに応じて、色を使用するかどうかを判断します。
Optional
fatalDeprecations
致命的とみなす非推奨のセットです 。
コンパイル中に、提供されたいずれかのタイプの非推奨警告が発生した場合、コンパイラーは代わりにエラーを発生させます 。
Version
が提供された場合、そのコンパイラーバージョンでアクティブだったすべての非推奨が致命的とみなされます 。
互換性
dart: "1.74.0", node: false
Optional
futureDeprecations
早期にオプトインする将来の非推奨のセットです 。
ここに渡された将来の非推奨は、コンパイラーによってアクティブとして扱われ、必要に応じて警告を発行します 。
互換性
dart: "1.74.0", node: false
Optional
logger
Optional
quietDeps
このオプションがtrue
に設定されている場合、Sassは依存関係によって引き起こされた警告を出力しません。「依存関係」は、loadPathsまたはimportersを通じてロードされるすべてのファイルとして定義されます。エントリポイントに対して相対的にインポートされるスタイルシートは、依存関係とはみなされません 。
これは、自分で修正できない非推奨警告を抑制するのに役立ちます。ただし、できるだけ早く修正できるように、依存関係にも非推奨について通知してください !
⚠️ 注意!
compileStringまたはcompileStringAsyncがurlなしで呼び出された場合、ロードするすべてのスタイルシートが依存関係とみなされます。独自のパスがないため、ロードするすべてのものは、相対インポートではなく、ロードパスから来ています 。
デフォルト値
false
Optional
silenceDeprecations
無視するアクティブな非推奨のセットです 。
コンパイル中に、提供されたいずれかのタイプの非推奨警告が発生した場合、コンパイラーは代わりにそれを無視します 。
⚠️ 注意!
依存している非推奨の機能は最終的に 壊れます。
互換性
dart: "1.74.0", node: false
Optional
verbose
デフォルトでは、Dart Sassはコンソールノイズでユーザーを圧倒するのを避けるために、コンパイルごとに同じ非推奨警告の5つのインスタンスのみを出力します。verbose
をtrue
に設定すると、代わりに遭遇したすべての非推奨警告が出力されます 。
デフォルト値
false
compileString または compileStringAsync に渡すことができるオプション。
importer フィールドが渡されない場合、エントリポイントファイルは、url フィールドに
file://
URL が渡された場合、自身を基準としたファイルをロードできます。渡された場合、エントリポイントファイルは、自身を基準としたファイルをロードするためにそれを使用します。