Optionen<sync>

Optionen, die an compile, compileAsync, compileString oder compileStringAsync übergeben werden können.

Typenparameter

Hierarchie

Input

loadPaths?: string[]

Pfade, in denen nach Stylesheets gesucht werden soll, die durch Regeln wie @use und @import geladen werden.

Ein Pfad loadPath ist äquivalent zu folgendem FileImporter

{
findFileUrl(url) {
// Load paths only support relative URLs.
if (/^[a-z]+:/i.test(url)) return null;
return new URL(url, pathToFileURL(loadPath));
}
}

Output

charset?: boolean
Kompatibilität
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 Nicht-ASCII- CSS ausgibt.

Wenn false, gibt der Compiler diese Byte-Sequenzen nie aus. Dies ist ideal beim Verketten oder Einbetten in HTML <style>-Tags. (Die Ausgabe wird immer noch UTF-8 sein.)

Default Value

true

sourceMap?: boolean

Ob Sass eine Source Map generieren soll oder nicht. Wenn ja, ist die Source Map unter sourceMap verfügbar.

⚠️ Vorsicht!

Sass fügt dem generierten CSS keinen sourceMappingURL-Kommentar hinzu. Dies liegt in der Verantwortung der Aufrufer, da diese die vollständige Kenntnis darüber haben, wo sich das CSS und die Source Map relativ zueinander befinden und wie sie dem Browser serviert werden.

Default Value

false

sourceMapIncludeSources?: boolean

Ob Sass die Quellen in die generierte Source Map aufnehmen soll.

Diese Option hat keine Auswirkung, wenn sourceMap false ist.

Default Value

false

style?: OutputStyle

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

functions?: Record<string, CustomFunction<sync>>

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 man sie für die Regel @function schreiben würde, und dessen Werte CustomFunctions sind.

Funktionen werden mit Subklassen von Value übergeben und müssen dasselbe 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 an den Standards der Kernfunktionen von Sass wie möglich zu gestalten. Einige gute Richtlinien, die man befolgen sollte:

  • Verwenden Sie Value.assert*-Methoden, wie z. B. assertString, um untypisierte Value-Objekte in spezifischere Typen umzuwandeln. 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 den falschen Typ an Ihre Funktion übergibt.

  • Einzelne Klassen können spezifischere assert*-Methoden haben, wie z. B. 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 vs. Leerzeichen-Trennung, geklammert vs. un-geklammert, zitiert vs. un-zitiert), sollten die Ausgabemetadaten den Eingabe- Metadaten entsprechen.

  • Im Zweifelsfall sollten Listen standardmäßig durch Kommas getrennt sein, Zeichenketten standardmäßig zitiert und Zahlen standardmäßig unitarisch sein.

  • In Sass verwenden Listen und Zeichenketten eine einbasierte Indizierung und negative Indizes, um vom Ende des Wertes aus zu indizieren. Funktionen sollten diese Konventionen befolgen. sassIndexToListIndex und sassIndexToStringIndex können verwendet werden, um dies automatisch zu tun.

  • Zeichenketten-Indizes in Sass beziehen sich auf Unicode-Codepunkte, während JavaScript-Zeichenketten-Indizes sich auf UTF-16-Code-Einheiten beziehen. Zum Beispiel ist das Zeichen U+1F60A SMILING FACE WITH SMILING EYES ein einzelner Unicode-Codepunkt, wird aber in UTF-16 als zwei Code-Einheiten (0xD83D und 0xDE0A) dargestellt. In JavaScript gibt "a😊b".charCodeAt(1) also 0xD83D zurück, während in Sass str-slice("a😊b", 1, 1) "😊" zurückgibt. Funktionen sollten Sass' 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));
}
}
});
importers?: (NodePackageImporter | Importer<sync> | FileImporter<sync>)[]

Benutzerdefinierte Importer, die steuern, wie Sass Loads aus 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 Reihenfolge.

  • Jeder Pfad in loadPaths, in Reihenfolge.

Wenn keiner dieser Einträge eine Sass-Datei zurückgibt, schlägt der Ladevorgang fehl und Sass löst einen Fehler aus.

Messages

alertAscii?: boolean

Wenn dies true ist, verwendet der Compiler ausschließlich ASCII-Zeichen in seinen Fehler- und Warnmeldungen. Andernfalls können auch Nicht-ASCII-Unicode-Zeichen verwendet werden.

Default Value

false

alertColor?: boolean

Wenn dies true ist, verwendet der Compiler ANSI-Farbcodes in seinen Fehler- und Warnmeldungen. Wenn es false ist, werden diese nicht verwendet. Wenn es undefiniert ist, bestimmt der Compiler, ob Farben verwendet werden oder nicht, je nachdem, ob der Benutzer ein interaktives Terminal verwendet.

fatalDeprecations?: (DeprecationOrId | Version)[]

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

futureDeprecations?: DeprecationOrId[]

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

logger?: Logger

Ein Objekt, das verwendet wird, um Warnungen und/oder Debug-Meldungen von Sass

Standardmäßig gibt Sass Warnungen und Debug-Meldungen an Standardfehler aus, aber wenn warn oder debug gesetzt ist, werden diese stattdessen aufgerufen.

Der spezielle Wert silent kann verwendet werden, um alle Meldungen

quietDeps?: boolean

Wenn diese Option auf true gesetzt ist, gibt Sass keine Warnungen aus, 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 ihm geladenen Stylesheets als Abhängigkeiten betrachtet. Da es keinen eigenen Pfad hat, kommt alles, was es lädt, von einem Load Path und nicht von einem relativen Import.

Default Value

false

silenceDeprecations?: DeprecationOrId[]

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

verbose?: boolean

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