LegacyStringOptions<sync>
Параметры типа
-
sync extends "sync" | "async"
Это позволяет TypeScript-проверке убедиться, что LegacyAsyncImporter и LegacyAsyncFunction не передаются в renderSync.
Иерархия
-
LegacySharedOptions<sync>
- LegacyStringOptions
Индекс
Входные данные
Выходные данные
Плагины
Сообщения
Карты исходных данных
Входные данные
data
Содержимое стилового файла для компиляции. Если параметр file также не передан, URL-адрес стилового файла устанавливается на "stdin".
По умолчанию, этот стиловый файл анализируется как SCSS. Это можно изменить с помощью indentedSyntax.
Пример
sass.renderSync({
data:`
h1 {
font-size: 40px;
}`
});
Optional file
Optional includePaths
- Dart Sass
- с 1.15.0
- Node Sass
- с 3.9.0
В более ранних версиях Dart Sass и Node Sass не поддерживалась переменная среды SASS_PATH.
Этот массив строк предоставляет пути поиска для Sass для поиска стиловых файлов. Более ранние пути поиска будут иметь приоритет перед более поздними.
sass.renderSync({
file:"style.scss",
includePaths: ["node_modules/bootstrap/dist/css"]
});
Пути поиска также загружаются из переменной среды SASS_PATH, если она задана. Эта переменная должна быть списком путей, разделённых ; (в Windows) или : (в других операционных системах). Пути поиска из опции includePaths имеют приоритет над путями поиска из SASS_PATH.
$SASS_PATH=node_modules/bootstrap/dist/csssassstyle.scssstyle.css
Optional indentedSyntax
Этот флаг определяет, анализируется ли data как синтаксис с отступами или нет.
Пример
sass.renderSync({
data:`
h1
font-size: 40px`,
indentedSyntax:true
});
Значение по умолчанию
false
Вывод
Optional charset
- Dart Sass
- с версии 1.39.0
- Node Sass
- ✗
По умолчанию, если документ CSS содержит не-ASCII символы, Sass добавляет объявление @charset (в режиме расширенного вывода) или маркер порядка байтов (в режиме сжатия) для указания кодировки браузеру или другим потребителям. Если charset равно false, эти аннотации опускаются.
Optional indentType
- Dart Sass
- ✓
- Node Sass
- с версии 3.0.0
Определяет, будут ли пробелы или табуляции использоваться для отступов в сгенерированном CSS.
constresult = sass.renderSync({
file:"style.scss",
indentType:"tab",
indentWidth:1
});
result.css.toString();
// "h1 {\n\tfont-size: 40px;\n}\n"
Значение по умолчанию
'space'
Optional indentWidth
- Dart Sass
- ✓
- Node Sass
- с версии 3.0.0
Количество пробелов или табуляций (в зависимости от indentType) для каждого уровня отступа в сгенерированном CSS. Должно быть от 0 до 10 (включительно).
Значение по умолчанию
2
Optional linefeed
- Dart Sass
- ✓
- Node Sass
- с версии 3.0.0
Последовательность символов для конца каждой строки в сгенерированном CSS.
-
'lf'использует U+000A LINE FEED. -
'lfcr'использует U+000A LINE FEED после U+000D CARRIAGE RETURN. -
'cr'использует U+000D CARRIAGE RETURN. -
'crlf'использует U+000D CARRIAGE RETURN после U+000A LINE FEED.
Значение по умолчанию
'lf'
Optional outputStyle
Стиль вывода скомпилированного CSS. Доступны четыре стиля вывода:
-
"expanded"(по умолчанию для Dart Sass) — каждый селектор и декларация выводятся на отдельной строке. -
"compressed"— удаляются все лишние символы, и весь документ стилей выводится на одной строке. -
"nested"(по умолчанию для Node Sass, не поддерживается Dart Sass) — отступы CSS правил соответствуют вложенности в исходном Sass. -
"compact"(не поддерживается Dart Sass) — каждое CSS правило выводится на отдельной строке.
Пример
constsource = `
h1 {
font-size: 40px;
code {
font-face: Roboto Mono;
}
}`;
letresult = sass.renderSync({
data:source,
outputStyle:"expanded"
});
console.log(result.css.toString());
// h1 {
// font-size: 40px;
// }
// h1 code {
// font-face: Roboto Mono;
// }
result = sass.renderSync({
data:source,
outputStyle:"compressed"
});
console.log(result.css.toString());
// h1{font-size:40px}h1 code{font-face:Roboto Mono}
result = sass.renderSync({
data:source,
outputStyle:"nested"
});
console.log(result.css.toString());
// h1 {
// font-size: 40px; }
// h1 code {
// font-face: Roboto Mono; }
result = sass.renderSync({
data:source,
outputStyle:"compact"
});
console.log(result.css.toString());
// h1 { font-size: 40px; }
// h1 code { font-face: Roboto Mono; }
Плагины
Optional функции
Дополнительные встроенные функции Sass, доступные во всех стилях. Этот параметр принимает объект, ключами которого являются сигнатуры функций Sass, а значениями — LegacyFunction. Каждая функция должна принимать те же аргументы, что и её сигнатура.
Функции принимают подклассы LegacyValue и должны возвращать то же самое.
При написании пользовательских функций важно убедиться, что все аргументы имеют ожидаемые типы. В противном случае стили пользователей могут аварийно завершать работу непредсказуемым образом или, что хуже, компилироваться в бессмысленный CSS.
Пример
sass.render({
data:`
h1 {
font-size: pow(2, 5) * 1px;
}`,
functions: {
// This function uses the synchronous API, and can be passed to either
// renderSync() or render().
'pow($base, $exponent)':function(base, exponent) {
if (!(baseinstanceofsass.types.Number)) {
throw"$base: Expected a number.";
} elseif (base.getUnit()) {
throw"$base: Expected a unitless number.";
}
if (!(exponentinstanceofsass.types.Number)) {
throw"$exponent: Expected a number.";
} elseif (exponent.getUnit()) {
throw"$exponent: Expected a unitless number.";
}
returnnewsass.types.Number(
Math.pow(base.getValue(), exponent.getValue()));
},
// This function uses the asynchronous API, and can only be passed to
// render().
'sqrt($number)':function(number, done) {
if (!(numberinstanceofsass.types.Number)) {
throw"$number: Expected a number.";
} elseif (number.getUnit()) {
throw"$number: Expected a unitless number.";
}
done(newsass.types.Number(Math.sqrt(number.getValue())));
}
}
}, function(err, result) {
console.log(result.css.toString());
// h1 {
// font-size: 32px;
// }
});
Описание типа
-
[ключ: string]: LegacyFunction<синхронно>
Optional импортер
- Dart Sass
- ✓
- Node Sass
- с версии 3.0.0
Версии Node Sass до 3.0.0 не поддерживают массивы импортеров, а также импортеры, которые возвращают Error объекты.
Версии Node Sass до 2.0.0 вообще не поддерживают параметр importer.
- Dart Sass
- с версии 1.20.2
- Node Sass
- ✗
Версии Dart Sass до 1.20.2 отдавали предпочтение разрешению импорта с помощью includePaths перед разрешением их с помощью пользовательских импортеров.
Все версии Node Sass в настоящее время передают импорты импортерам перед загрузкой их относительно файла, в котором появляется @import. Это поведение считается неправильным и не должно использоваться, так как оно нарушает принцип локальности, который утверждает, что можно делать выводы относительно стиля без знания всего о конфигурации системы. Если пользователь пытается импортировать стиль относительно другого стиля, этот импорт всегда должен работать. Не должно быть возможности для какой-либо конфигурации где-либо еще его сломать.
Дополнительный обработчик(и) для загрузки файлов при обнаружении правила @use или правила @import. Это может быть как одна функция LegacyImporter, так и массив функций LegacyImporter.
Импортеры принимают URL файла, указанного в правиле @import или @use, и возвращают LegacyImporterResult, указывающий, как обработать это правило. Более подробная информация представлена в LegacySyncImporter и LegacyAsyncImporter.
Загрузки разрешаются путём последовательного выполнения:
-
Загрузка файла с диска относительно файла, в котором появилось правило
@useили@import. -
Каждый пользовательский импортер.
-
Загрузка файла относительно текущей рабочей директории.
-
Каждый путь загрузки в includePaths.
-
Каждый путь загрузки, указанный в переменной среды
SASS_PATH, которая должна быть разделена точкой с запятой на Windows и двоеточием в остальных случаях.
Пример
sass.render({
file:"style.scss",
importer: [
// This importer uses the synchronous API, and can be passed to either
// renderSync() or render().
function(url, prev) {
// This generates a stylesheet from scratch for `@use "big-headers"`.
if (url != "big-headers") returnnull;
return {
contents:`
h1 {
font-size: 40px;
}`
};
},
// This importer uses the asynchronous API, and can only be passed to
// render().
function(url, prev, done) {
// Convert `@use "foo/bar"` to "node_modules/foo/sass/bar".
constcomponents = url.split('/');
constinnerPath = components.slice(1).join('/');
done({
file:`node_modules/${components.first}/sass/${innerPath}`
});
}
]
}, function(err, result) {
// ...
});
Optional импортер из пакета
- Dart Sass
- с версии 2.0
- Node Sass
- ✗
Если этот параметр установлен на экземпляр NodePackageImporter, Sass будет использовать встроенный импортер пакетов Node.js для разрешения файлов Sass со схемой pkg: URL. Подробная информация для авторов библиотек и пользователей представлена в документации NodePackageImporter.
Пример
sass.renderSync({
data:'@use "pkg:vuetify";',
pkgImporter:newsass.NodePackageImporter()
});
Сообщения
Optional fatalDeprecations
Набор устаревших функций, которые будут обрабатываться как критические.
Если при компиляции встречается предупреждение об устаревании любого указанного типа, компилятор выдаст ошибку.
Если указан Version, то все предупреждения об устаревании, активные в этой версии компилятора, будут рассматриваться как критические.
Совместимость
dart: "1.78.0", node: false
Optional futureDeprecations
Набор будущих устаревших функций, которые необходимо включить.
Будущие устаревшие функции, указанные здесь, будут рассматриваться компилятором как активные, выводя соответствующие предупреждения при необходимости.
Совместимость
dart: "1.78.0", node: false
Optional logger
- Dart Sass
- с 1.43.0
- Node Sass
- ✗
Объект для обработки предупреждений и/или отладочных сообщений из Sass.
По умолчанию Sass выводит предупреждения и отладочные сообщения в стандартный вывод ошибок, но если задан warn или debug, он будет их использовать вместо этого.
Специальное значение silent можно использовать для лёгкого отключения всех сообщений.
Optional quietDeps
- Dart Sass
- с 1.35.0
- Node Sass
- ✗
Если этот параметр установлен в true, Sass не будет выводить предупреждения, вызванные зависимостями. «Зависимость» определяется как любой файл, загруженный через includePaths или importer. Стили, импортированные относительно точки входа, не считаются зависимостями.
Это полезно для отключения предупреждений об устаревании, которые вы не можете исправить самостоятельно. Однако, пожалуйста, также сообщите своим зависимостям об устареваниях, чтобы они могли быть исправлены как можно скорее!
Если render или renderSync вызываются без file или file, все загруженные стили будут считаться зависимостями. Поскольку у него нет собственного пути, всё, что он загружает, поступает из пути загрузки, а не из относительного импорта.
Значение по умолчанию
false
Optional silenceDeprecations
Набор активных устаревших функций, которые нужно проигнорировать.
Если при компиляции встречается предупреждение об устаревании любого указанного типа, компилятор проигнорирует его вместо этого.
В конечном итоге устаревшие функции, от которых вы зависите, перестанут работать.
Совместимость
dart: "1.78.0", node: false
Optional verbose
- Dart Sass
- с 1.35.0
- Node Sass
- ✗
По умолчанию Dart Sass будет выводить только пять экземпляров одного и того же предупреждения об устаревании за компиляцию, чтобы избежать перегрузки пользователей в консоли. Если вы установите verbose в true, он будет вместо этого выводить каждое предупреждение об устаревании, с которым сталкивается.
Значение по умолчанию
false
Карта исходных файлов
Optional omitSourceMapUrl
Если true, Sass не добавит ссылку из сгенерированного CSS в карту исходных файлов.
constresult = sass.renderSync({
file:"style.scss",
sourceMap:"out.map",
omitSourceMapUrl:true
})
console.log(result.css.toString());
// h1 {
// font-size: 40px;
// }
Значение по умолчанию
false
Optional outFile
Место, куда Sass ожидает сохранения сгенерированного CSS. Используется для определения URL, используемого для ссылки из сгенерированного CSS на карту исходных файлов, и из карты исходных файлов на файлы Sass.
Несмотря на название, Sass не записывает выходные данные CSS в этот файл. Это должен сделать вызывающий код.
result = sass.renderSync({
file:"style.scss",
sourceMap:true,
outFile:"out.css"
})
console.log(result.css.toString());
// h1 {
// font-size: 40px;
// }
// /*# sourceMappingURL=out.css.map * /
Optional sourceMap
Указывает, нужно ли Sass генерировать карту исходных файлов. Если да, карта исходных файлов будет доступна как map (если sourceMapEmbed не true).
Если этот параметр является строкой, это путь, куда ожидается запись карты исходных файлов, который используется для ссылки на карту исходных файлов из сгенерированного CSS и для ссылки из карты исходных файлов на файлы Sass. Обратите внимание, что если sourceMap является строкой, а outFile не передаётся, Sass предполагает, что CSS будет записан в ту же директорию, что и файл-опция, если она передана.
Если этот параметр true, путь предполагается как outFile с .map в конце. Если это true и outFile не передаётся, он не имеет эффекта.
Пример
letresult = sass.renderSync({
file:"style.scss",
sourceMap:"out.map"
})
console.log(result.css.toString());
// h1 {
// font-size: 40px;
// }
// /*# sourceMappingURL=out.map * /
result = sass.renderSync({
file:"style.scss",
sourceMap:true,
outFile:"out.css"
})
console.log(result.css.toString());
// h1 {
// font-size: 40px;
// }
// /*# sourceMappingURL=out.css.map * /
Значение по умолчанию
false
Optional sourceMapContents
Указывает, нужно ли встраивать все содержимое файлов Sass, которые повлияли на сгенерированный CSS, в карту исходных файлов. Это может создавать очень большие карты исходных файлов, но гарантирует, что исходный код будет доступен на любом компьютере независимо от того, как CSS будет доставлен.
Пример
sass.renderSync({
file:"style.scss",
sourceMap:"out.map",
sourceMapContents:true
})
Значение по умолчанию
false
Optional sourceMapEmbed
Указывает, нужно ли встроить содержимое файла карты исходных файлов в сгенерированный CSS вместо создания отдельного файла и ссылки на него из CSS.
Пример
sass.renderSync({
file:"style.scss",
sourceMap:"out.map",
sourceMapEmbed:true
});
Значение по умолчанию
false
Optional sourceMapRoot
Если передано, добавляется перед всеми ссылками из карты исходных файлов на файлы Sass.
© 2006–2025 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/js-api/interfaces/LegacyStringOptions
Если передан параметр data, Sass будет использовать его как содержимое стилового файла для компиляции.
Устаревшее
Это работает только с устаревшими API render и renderSync. Используйте StringOptions с compile, compileString, compileAsync и compileStringAsync вместо этого.