LegacySharedOptions<sync>
Type Parameters
-
sync extends "sync" | "async"
Это позволяет проверять TypeScript, чтобы LegacyAsyncImporter и LegacyAsyncFunction не передавались в renderSync.
Hierarchy
- LegacySharedOptions
Index
Input
Output
Plugins
Messages
Source Maps
Input
Optional includePaths
- Dart Sass
- since 1.15.0
- Node Sass
- since 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 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, а значения — LegacyFunctions. Каждая функция должна принимать те же аргументы, что и её сигнатура.
Функциям передаются подклассы 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;
// }
});
Объявление типа
-
[ключ: строка]: 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/LegacySharedOptions
Параметры для render и renderSync, которые совместно используются LegacyFileOptions и LegacyStringOptions.
Устаревший
Это работает только с устаревшими API render и renderSync. Используйте Options с compile, compileString, compileAsync и compileStringAsync вместо этого.