StringOptions<sync>
Typenparameter
-
sync extends "sync" | "async"
Dies ermöglicht dem TypeScript-Checker zu überprüfen, dass asynchrone Importer, FileImporter und CustomFunctions nicht an compile oder compileString übergeben werden.
Hierarchie
- Options<sync>
- StringOptions
Index
Input
Optional importer
Der zu verwendende Importer zur Behandlung von Ladevorgängen, die relativ zur Einstiegs- Stylesheet sind.
Die URL einer relativen Ladung wird zuerst relativ zu url aufgelöst und dann an importer übergeben. (Sie wird unverändert übergeben, wenn url nicht übergeben wird.) Wenn der Importer sie nicht erkennt, wird sie dann an importers und loadPaths übergeben.
Optional loadPaths
Pfade, in denen nach Stylesheets gesucht werden soll, die von Regeln wie @use und @import geladen wurden.
Ein Load Path loadPath ist äquivalent zum folgenden FileImporter
{
findFileUrl(url) {
// Load paths only support relative URLs.
if (/^[a-z]+:/i.test(url)) return null;
return new URL(url, pathToFileURL(loadPath));
}
}
Optional syntax
Optional url
- Dart Sass
- seit 1.75.0
- Node Sass
- ✗
Die kanonische URL des Einstiegs- Stylesheet.
Die URL einer relativen Ladung wird zuerst relativ zu url aufgelöst und dann in eine Datei auf der Festplatte aufgelöst, wenn es sich um eine file:// URL handelt. Wenn sie nicht in eine Datei auf der Festplatte aufgelöst werden kann, wird sie dann an importers und loadPaths übergeben.
Output
Optional charset
- Dart Sass
- seit 1.54.0
- Node Sass
- ✗
Wenn true, kann der Compiler @charset "UTF-8"; oder U+FEFF (Byte-Order-Mark) voranstellen, wenn er kein ASCII CSS ausgibt.
Wenn false, gibt der Compiler diese Byte-Sequenzen niemals aus. Dies ist ideal, wenn Sie sie verketten oder in HTML <style>-Tags einbetten. (Die Ausgabe wird immer noch in UTF-8 sein.)
Default Value
true
Optional sourceMap
Ob Sass eine Source Map generieren soll oder nicht. Wenn ja, ist die Source Map als sourceMap verfügbar.
⚠️ Vorsicht!
Sass fügt dem generierten CSS nicht automatisch einen sourceMappingURL-Kommentar hinzu. Dies liegt in der Verantwortung der Aufrufer, da die Aufrufer die vollständige Kenntnis darüber haben, wo sich das CSS und die Source Map relativ zueinander befinden werden und wie sie an den Browser ausgeliefert werden.
Default Value
false
Optional sourceMapIncludeSources
Ob Sass die Quellen in die generierte Source Map aufnehmen soll.
Diese Option hat keine Auswirkung, wenn sourceMap false ist.
Default Value
false
Optional style
Der OutputStyle des kompilierten CSS.
Beispiel
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}
Plugins
Optional functions
Zusätzliche eingebaute Sass-Funktionen, die in allen Stylesheets verfügbar sind. Diese Option nimmt ein Objekt entgegen, dessen Schlüssel Sass-Funktionssignaturen sind, wie sie für die Regel @function geschrieben würden, und dessen Werte CustomFunctions sind.
Funktionen erhalten Unterklassen von Value und müssen das gleiche zurückgeben. Wenn der Rückgabewert SassCalculations enthält, werden diese vor der Rückgabe vereinfacht.
Beim Schreiben von benutzerdefinierten Funktionen ist es wichtig, sie so benutzerfreundlich und so nah wie möglich an den Standards der Kernfunktionen von Sass auszurichten. Einige gute Richtlinien sind:
Verwenden Sie
Value.assert*-Methoden, wie assertString, um untypisierteValue-Objekte in spezifischere Typen zu konvertieren. Für Werte, die direkt als Argumente übergeben wurden, übergeben Sie auch den Argumentnamen. Dies stellt sicher, dass der Benutzer gute Fehlermeldungen erhält, wenn er einen falschen Typ an Ihre Funktion übergibt.Einzelne Klassen können spezifischere
assert*-Methoden haben, wie assertInt, die verwendet werden sollten, wenn möglich.In Sass zählt jeder Wert als Liste. Anstatt zu versuchen, den Typ SassList zu erkennen, sollten Sie asList verwenden, um alle Werte als Listen zu behandeln.
Beim Manipulieren von Werten wie Listen, Zeichenketten und Zahlen, die Metadaten haben (Komma oder Leerzeichen getrennt, mit oder ohne Klammern, mit oder ohne Anführungszeichen, mit oder ohne Einheiten), sollten die Ausgabemetadaten mit den Eingabemetadaten übereinstimmen.
Im Zweifelsfall sollten Listen standardmäßig durch Kommas getrennt sein, Zeichenketten standardmäßig in Anführungszeichen gesetzt sein und Zahlen standardmäßig einheitenlos sein.
In Sass verwenden Listen und Zeichenketten eine indizierung ab 1 und negative Indizes, um vom Ende des Werts zu indizieren. Funktionen sollten diese Konventionen befolgen. sassIndexToListIndex und sassIndexToStringIndex können verwendet werden, um dies automatisch zu tun.
Sass-Zeichenkettenindizes beziehen sich auf Unicode-Codepunkte, während JavaScript-Zeichenkettenindizes auf UTF-16-Codeeinheiten Bezug nehmen. Zum Beispiel ist das Zeichen U+1F60A SMILING FACE WITH SMILING EYES ein einzelner Unicode-Codepunkt, wird aber in UTF-16 als zwei Codeeinheiten (
0xD83Dund0xDE0A) dargestellt. In JavaScript gibt"a😊b".charCodeAt(1)also0xD83Dzurück, während in Sassstr-slice("a😊b", 1, 1)"😊"zurückgibt. Funktionen sollten Sass's Konventionen folgen. sassIndexToStringIndex kann verwendet werden, um dies automatisch zu tun, und der Getter sassLength kann verwendet werden, um auf die Länge einer Zeichenkette in Codepunkten zuzugreifen.
Beispiel
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));
}
}
});
Optional importers
Benutzerdefinierte Importer, die steuern, wie Sass Ladevorgänge von Regeln wie @use und @import auflöst.
Ladungen werden gelöst, indem in Reihenfolge
Der Importer, der zum Laden des aktuellen Stylesheets verwendet wurde, wobei die geladene URL relativ zur kanonischen URL des aktuellen Stylesheets aufgelöst wurde.
Jeder Importer, FileImporter oder NodePackageImporter in importers, in dieser Reihenfolge.
Jeder Load Path in loadPaths, in dieser Reihenfolge.
Wenn keiner dieser Einträge eine Sass-Datei zurückgibt, schlägt der Ladevorgang fehl und Sass löst einen Fehler aus.
Messages
Optional alertAscii
Wenn dies true ist, wird der Compiler ausschließlich ASCII-Zeichen in seinen Fehler- und Warnmeldungen verwenden. Andernfalls kann er auch Nicht-ASCII-Unicode-Zeichen verwenden.
Default Value
false
Optional alertColor
Wenn dies true ist, wird der Compiler ANSI-Farbcodesequenzen in seinen Fehler- und Warnmeldungen verwenden. Wenn es false ist, wird er diese nicht verwenden. Wenn es undefiniert ist, ermittelt der Compiler, ob Farben verwendet werden sollen, je nachdem, ob der Benutzer ein interaktives Terminal verwendet.
Optional fatalDeprecations
Eine Menge von Deprecations, die als fatal
Wenn während der Kompilierung eine Deprecationswarnung eines der bereitgestellten Typen auftritt, wird der Compiler stattdessen einen Fehler ausgeben.
Wenn eine Version angegeben ist, werden alle Deprecations, die in dieser Compilerversion aktiv waren, als fatal
Kompatibilität
dart: "1.74.0", node: false
Optional futureDeprecations
Eine Menge von zukünftigen Deprecations, um sich frühzeitig dafür zu entscheiden.
Zukünftige Deprecations, die hier übergeben werden, werden vom Compiler als aktiv behandelt und bei Bedarf Warnungen ausgegeben .
Kompatibilität
dart: "1.74.0", node: false
Optional logger
Optional quietDeps
Wenn diese Option auf true gesetzt ist, wird Sass keine Warnungen ausgeben, die durch Abhängigkeiten verursacht werden. Eine "Abhängigkeit" ist definiert als jede Datei, die über loadPaths oder importers geladen wird. Stylesheets, die relativ zum Einstiegspunkt importiert werden, gelten nicht als Abhängigkeiten.
Dies ist nützlich, um Deprecationswarnungen zu unterdrücken, die Sie nicht selbst beheben können. Bitte benachrichtigen Sie aber *auch* Ihre Abhängigkeiten über die Deprecations, damit diese so schnell wie möglich behoben werden!
⚠️ Vorsicht!
Wenn compileString oder compileStringAsync ohne url aufgerufen wird, werden *alle* von ihr geladenen Stylesheets als Abhängigkeiten betrachtet. Da sie keinen eigenen Pfad hat, kommen alle von ihr geladenen Inhalte aus einem Load Path und nicht aus einem relativen Import.
Default Value
false
Optional silenceDeprecations
Eine Menge von aktiven Deprecations, die ignoriert
Wenn während der Kompilierung eine Deprecationswarnung eines der bereitgestellten Typen auftritt, wird der Compiler sie stattdessen ignorieren .
⚠️ Vorsicht!
Die veraltete Funktionalität, von der Sie abhängig sind, wird irgendwann brechen.
Kompatibilität
dart: "1.74.0", node: false
Optional verbose
Standardmäßig gibt Dart Sass nur fünf Instanzen derselben Deprecation-Warnung pro Kompilierung aus, um die Benutzer nicht mit Konsolenlärm zu überfluten. Wenn Sie verbose auf true setzen, gibt es stattdessen jede Deprecation-Warnung aus, die es findet.
Default Value
false
Optionen, die an compileString oder compileStringAsync übergeben werden können.
Wenn das Feld importer nicht übergeben wird, kann die Einstiegsdatei Dateien relativ zu sich selbst laden, wenn eine
file://URL an das Feld url übergeben wird. Wenn sie übergeben wird, verwendet die Einstiegsdatei diese, um Dateien relativ zu sich selbst zu laden.