StringOptions<sync>
Параметры типа
-
sync extends "sync" | "async"
Это позволяет средству проверки TypeScript убедиться, что асинхронные Importer, FileImporter и CustomFunction не передаются в compile или compileString.
Иерархия
-
Options<sync>
- StringOptions
Индекс
Ввод
Optional importer
Импортер, используемый для обработки относительных загрузок URL в таблице стилей точки входа и таблицах стилей, загружаемых относительно таблицы стилей точки входа.
Сведения о разрешении загрузок для таблицы стилей точки входа см. в разделе importers.
Optional loadPaths
Пути, в которых выполняется поиск таблиц стилей, загружаемых такими правилами, как @use и @import.
Путь загрузки loadPath эквивалентен следующему FileImporter:
{
findFileUrl(url) {
// Load paths only support relative URLs.
if (/^[a-z]+:/i.test(url)) returnnull;
returnnewURL(url, pathToFileURL(loadPath));
}
}
Optional syntax
Optional url
- Dart Sass
- начиная с 1.75.0
- Node Sass
- ✗
Канонический URL таблицы стилей точки входа.
Сведения о разрешении загрузок для таблицы стилей точки входа см. в разделе importers.
Вывод
Optional charset
- Dart Sass
- начиная с 1.54.0
- Node Sass
- ✗
Если true, компилятор может добавить в начало @charset "UTF-8"; или U+FEFF (маркер порядка байтов), если выводит CSS с символами, не относящимися к ASCII.
Если false, компилятор никогда не выводит эти последовательности байтов. Это оптимальный вариант при объединении или встраивании в теги HTML <style>. (Вывод при этом всё равно будет в кодировке UTF-8.)
Значение по умолчанию
true
Optional sourceMap
Должен ли Sass создавать карту исходного кода. Если да, карта исходного кода будет доступна как sourceMap.
Sass не добавляет автоматически комментарий sourceMappingURL в созданный CSS. Это должны делать вызывающие стороны, поскольку им точно известно, где относительно друг друга находятся CSS и карта исходного кода, а также как они будут переданы браузеру.
Значение по умолчанию
false
Optional sourceMapIncludeSources
Должен ли Sass включать исходные файлы в созданную карту исходного кода.
Этот параметр не действует, если sourceMap имеет значение false.
Значение по умолчанию
false
Optional style
Стиль OutputStyle скомпилированного CSS.
Пример
constsource = `
h1 {
font-size: 40px;
code {
font-face: Roboto Mono;
}
}`;
letresult = 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}
Плагины
Optional functions
Дополнительные встроенные функции Sass, доступные во всех таблицах стилей. Этот параметр принимает объект, ключами которого являются сигнатуры функций Sass, например те, что используются в правиле @function rule, а значениями — CustomFunction.
Функциям передаются подклассы Value, и они должны возвращать такой же тип. Если возвращаемое значение содержит SassCalculation, перед возвратом они будут упрощены.
При написании пользовательских функций важно сделать их удобными для пользователей и максимально соответствующими стандартам, заданным основными функциями Sass. Вот несколько рекомендаций:
-
Используйте методы
Value.assert*, например assertString, чтобы преобразовывать нетипизированные объектыValueв более конкретные типы. Для значений, переданных непосредственно в качестве аргументов, также указывайте имя аргумента. Это гарантирует, что пользователь получит понятные сообщения об ошибках, если передаст функции значение неправильного типа. -
У отдельных классов могут быть более специализированные методы
assert*, например assertInt; по возможности следует использовать их. -
В Sass каждое значение считается списком. Вместо проверки типа SassList используйте asList, чтобы обрабатывать все значения как списки.
-
При обработке значений с метаданными, таких как списки, строки и числа (разделённые запятыми или пробелами, заключённые в скобки или без скобок, в кавычках или без кавычек, единицы измерения), метаданные выходных данных должны соответствовать метаданным входных данных.
-
Если есть сомнения, для списков следует выбирать разделение запятыми, для строк — кавычки, а для чисел — отсутствие единиц измерения.
-
В Sass для списков и строк используется индексация с единицы, а отрицательные индексы отсчитываются от конца значения. Функции должны придерживаться этих соглашений. Для автоматизации этого преобразования можно использовать sassIndexToListIndex и sassIndexToStringIndex.
-
В Sass строковые индексы указывают на кодовые точки Unicode, а в JavaScript индексы строк указывают на 16-разрядные кодовые единицы UTF-16. Например, символ U+1F60A SMILING FACE WITH SMILING EYES представляет собой одну кодовую точку Unicode, но в UTF-16 кодируется двумя кодовыми единицами (
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) {
constbase = args[0].assertNumber('base').assertNoUnits('base');
constexponent =
args[1].assertNumber('exponent').assertNoUnits('exponent');
returnnewsass.SassNumber(Math.pow(base.value, exponent.value));
}
}
});
Optional importers
Пользовательские импортеры, управляющие разрешением Sass загрузок из таких правил, как @use и @import.
Загрузки разрешаются в следующем порядке:
-
Только для относительных URL: URL, разрешённый относительно канонического URL текущей таблицы стилей, передаётся импортеру, который загрузил текущую таблицу стилей.
При вызове compileString или compileStringAsync файл точки входа не «загружается» в том же смысле, что и другие файлы. В этом случае:
-
url — это канонический URL, а importer — импортер, который его загрузил.
-
Если importer не передан, а url является
file:URL, по умолчанию URL загружается из файловой системы. (Это поведение можно отключить, передав{canonicalize: url => null}в качестве importer.) -
Если url не передан, но передан importer, относительный URL передаётся в importer без изменений.
-
-
Каждый Importer, FileImporter или NodePackageImporter из importers — по порядку.
-
Каждый путь загрузки из loadPaths — по порядку.
Если ни один из них не возвращает файл Sass, загрузка завершается ошибкой, и Sass выдаёт исключение.
Сообщения
Optional alertAscii
Если это true, компилятор будет использовать исключительно символы ASCII в сообщениях об ошибках и предупреждениях. В противном случае он также может использовать символы Unicode, не относящиеся к ASCII.
Значение по умолчанию
false
Optional alertColor
Если это true, компилятор будет использовать escape-последовательности цветов 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 выводит не более пяти экземпляров одного и того же предупреждения об устаревании за компиляцию, чтобы не перегружать пользователей сообщениями в консоли. Если задать для verbose значение true, будут выводиться все обнаруженные предупреждения об устаревании.
Значение по умолчанию
false
© 2006–2025 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/js-api/interfaces/StringOptions
Параметры, которые можно передать в compileString или compileStringAsync.
Если поле importer не передано, файл точки входа может загружать файлы относительно себя, если в поле url передан
file://URL. Если переданimporter, файл точки входа использует этот импортер для загрузки файлов относительно себя.