Spec-Zone.ru › Sass

LegacySharedOptions<sync>

Параметры для render и renderSync, которые совместно используются LegacyFileOptions и LegacyStringOptions.

Устаревший

Это работает только с устаревшими API render и renderSync. Используйте Options с compile, compileString, compileAsync и compileStringAsync вместо этого.

Type Parameters

  • sync extends "sync" | "async"

    Это позволяет проверять TypeScript, чтобы LegacyAsyncImporter и LegacyAsyncFunction не передавались в renderSync.

Hierarchy

  • LegacySharedOptions
    • LegacyFileOptions
    • LegacyStringOptions
  • Defined in js-api-doc/legacy/options.d.ts:20
Index

Input

includePaths?

Output

charset? indentType? indentWidth? linefeed? outputStyle?

Plugins

functions? importer? pkgImporter?

Messages

fatalDeprecations? futureDeprecations? logger? quietDeps? silenceDeprecations? verbose?

Source Maps

omitSourceMapUrl? outFile? sourceMap? sourceMapContents? sourceMapEmbed? sourceMapRoot?

Input

Optional includePaths

includePaths?: string[]
Compatibility (SASS_PATH):
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
  • Defined in js-api-doc/legacy/options.d.ts:49

Вывод

Optional charset

charset?: boolean
Совместимость:
Dart Sass
с версии 1.39.0
Node Sass
✗

По умолчанию, если документ CSS содержит символы, отличные от ASCII, Sass добавляет объявление @charset (в режиме расширенного вывода) или метку порядка байтов (в режиме сжатия) для указания кодировки браузерам или другим потребителям. Если charset равно false, эти аннотации опускаются.

  • Определено в js-api-doc/legacy/options.d.ts:463

Optional indentType

indentType?: "space" | "tab"
Совместимость:
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'

  • Определено в js-api-doc/legacy/options.d.ts:69

Optional indentWidth

indentWidth?: number
Совместимость:
Dart Sass
✓
Node Sass
с версии 3.0.0

Количество пробелов или табуляций (в зависимости от indentType) для каждого уровня отступа в генерируемом CSS. Должно быть целым числом от 0 до 10 включительно.

Значение по умолчанию

2

  • Определено в js-api-doc/legacy/options.d.ts:80

Optional linefeed

linefeed?: "cr" | "crlf" | "lf" | "lfcr"
Совместимость:
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'

  • Определено в js-api-doc/legacy/options.d.ts:95

Optional outputStyle

outputStyle?: "expanded" | "compact" | "compressed" | "nested"

Стиль вывода скомпилированного 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; }
  • Определено в js-api-doc/legacy/options.d.ts:207

Плагины

Optional функции

функции?: {
[ключ: строка]: LegacyFunction<синхронно>;
}

Дополнительные встроенные функции 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<синхронно>
  • Определено в js-api-doc/legacy/options.d.ts:452

Optional импортер

импортер?: LegacyImporter<синхронно> | LegacyImporter<синхронно>[]
Совместимость:
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) {
// ...
});
  • Определено в js-api-doc/legacy/options.d.ts:387

Optional импортер_пакета

импортер_пакета?: NodePackageImporter
Совместимость:
Dart Sass
с 2.0
Node Sass
✗

Если этот параметр установлен в экземпляр NodePackageImporter, Sass будет использовать встроенный импортер пакетов Node.js для разрешения файлов Sass со схемой pkg: URL. Подробности для авторов библиотек и пользователей можно найти в документации NodePackageImporter.

Пример

sass.renderSync({
data:'@use "pkg:vuetify";',
pkgImporter:newsass.NodePackageImporter()
});
  • Определено в js-api-doc/legacy/options.d.ts:569

Сообщения

Optional fatalDeprecations

fatalDeprecations?: (DeprecationOrId | Version)[]

Набор устаревших функций, которые будут обрабатываться как фатальные.

Если при компиляции встретится предупреждение об устаревании любого указанного типа, компилятор выдаст ошибку.

Если указан Version, то все предупреждения об устаревании, активные в этой версии компилятора, будут обрабатываться как фатальные.

Совместимость

dart: "1.78.0", node: false

  • Определено в js-api-doc/legacy/options.d.ts:499

Optional futureDeprecations

futureDeprecations?: DeprecationOrId[]

Набор будущих устаревших функций, которые нужно включить в ранний доступ.

Будущие устаревшие функции, указанные здесь, будут обрабатываться компилятором как активные, вызывая необходимые предупреждения.

Совместимость

dart: "1.78.0", node: false

  • Определено в js-api-doc/legacy/options.d.ts:510

Optional logger

logger?: Logger
Совместимость:
Dart Sass
с 1.43.0
Node Sass
✗

Объект для обработки предупреждений и/или отладочных сообщений из Sass.

По умолчанию Sass выводит предупреждения и отладочные сообщения в стандартный вывод ошибки, но если warn или debug установлены, то они будут вызваны вместо этого.

Специальное значение silent может быть использовано для отключения всех сообщений.

  • Определено в js-api-doc/legacy/options.d.ts:551

Optional quietDeps

quietDeps?: boolean
Совместимость:
Dart Sass
с 1.35.0
Node Sass
✗

Если этот параметр установлен в значение true, Sass не будет выводить предупреждения, вызванные зависимостями. «Зависимость» определяется как любой файл, загруженный через includePaths или importer. Стили, импортированные относительно точки входа, не считаются зависимостями.

Это полезно для отключения предупреждений об устаревании, которые вы не можете исправить самостоятельно. Однако, пожалуйста, также уведомьте свои зависимости об устареваниях, чтобы они могли быть исправлены как можно скорее!

Если render или renderSync вызываются без file или file, все загруженные стили будут считаться зависимостями. Поскольку у него нет собственного пути, все загружаемое поступает из пути загрузки, а не из относительного импорта.

Значение по умолчанию

false

  • Определено в js-api-doc/legacy/options.d.ts:485

Optional silenceDeprecations

silenceDeprecations?: DeprecationOrId[]

Набор активных устаревших функций, которые нужно игнорировать.

Если при компиляции встретится предупреждение об устаревании любого указанного типа, компилятор проигнорирует его.

Устаревшие функции, от которых вы зависите, в конечном итоге перестанут работать.

Совместимость

dart: "1.78.0", node: false

  • Определено в js-api-doc/legacy/options.d.ts:524

Optional verbose

verbose?: boolean
Совместимость:
Dart Sass
с 1.35.0
Node Sass
✗

По умолчанию Dart Sass выводит только пять экземпляров одного и того же предупреждения об устаревании за компиляцию, чтобы избежать перегрузки пользователей в консоли. Если вы установите verbose в значение true, он будет выводить каждое предупреждение об устаревании, которое встречает.

Значение по умолчанию

false

  • Определено в js-api-doc/legacy/options.d.ts:536

Карта исходных файлов

Optional omitSourceMapUrl

omitSourceMapUrl?: boolean

Если true, Sass не добавит ссылку из сгенерированного файла CSS в карту исходных файлов.

constresult = sass.renderSync({
file:"style.scss",
sourceMap:"out.map",
omitSourceMapUrl:true
})
console.log(result.css.toString());
// h1 {
// font-size: 40px;
// }

Значение по умолчанию

false

  • Определено в js-api-doc/legacy/options.d.ts:115

Optional outFile

outFile?: string

Расположение, в которое 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 * /
  • Определено в js-api-doc/legacy/options.d.ts:140

Optional sourceMap

sourceMap?: string | boolean

Указывает, нужно ли 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

  • Определено в js-api-doc/legacy/options.d.ts:253

Optional sourceMapContents

sourceMapContents?: boolean

Указывает, нужно ли встроить содержимое всех файлов Sass, которые повлияли на сгенерированный CSS, в карту исходных файлов. Это может привести к созданию очень больших карт исходных файлов, но гарантирует, что исходный код будет доступен на любом компьютере, независимо от того, как CSS отображается.

Пример

sass.renderSync({
file:"style.scss",
sourceMap:"out.map",
sourceMapContents:true
})

Значение по умолчанию

false

  • Определено в js-api-doc/legacy/options.d.ts:274

Optional sourceMapEmbed

sourceMapEmbed?: boolean

Указывает, нужно ли встраивать содержимое файла карты исходных файлов в сгенерированный CSS, а не создавать отдельный файл и ссылаться на него из CSS.

Пример

sass.renderSync({
file:"style.scss",
sourceMap:"out.map",
sourceMapEmbed:true
});

Значение по умолчанию

false

  • Определено в js-api-doc/legacy/options.d.ts:293

Optional sourceMapRoot

sourceMapRoot?: string

Если это значение передано, оно добавляется в начало всех ссылок из карты исходных файлов на файлы исходного Sass.

  • Определено в js-api-doc/legacy/options.d.ts:301
sass
  • Compile
    • AsyncCompiler
    • Compiler
    • CompileResult
    • compile
    • compileAsync
    • compileString
    • compileStringAsync
    • initAsyncCompiler
    • initCompiler
  • Options
    • Options
    • StringOptions
    • OutputStyle
    • StringOptionsWithImporter
    • StringOptionsWithoutImporter
    • Syntax
  • Logger
    • Logger
      • silent
    • Logger
    • SourceLocation
    • SourceSpan
    • LoggerWarnOptions
  • Importer
    • NodePackageImporter
    • FileImporter
    • Importer
    • ImporterResult
  • Пользовательская функция
    • CalculationInterpolation
    • CalculationOperation
    • SassArgumentList
    • SassBoolean
    • SassCalculation
    • SassColor
    • SassFunction
    • SassList
    • SassMap
    • SassMixin
    • SassNumber
    • SassString
    • Значение
    • CalculationOperator
    • CalculationValue
    • CustomFunction
    • ListSeparator
    • sassFalse
    • sassNull
    • sassTrue
  • Другое
    • Исключение
    • CanonicalizeContext
    • Устаревшие элементы
    • LegacyFileOptions
    • ChannelName
    • ChannelNameHsl
    • ChannelNameHwb
    • ChannelNameLab
    • ChannelNameLch
    • ChannelNameRgb
    • ChannelNameXyz
    • ColorSpaceHsl
    • ColorSpaceHwb
    • ColorSpaceLab
    • ColorSpaceLch
    • ColorSpaceRgb
    • ColorSpaceXyz
    • GamutMapMethod
    • HueInterpolationMethod
    • KnownColorSpace
    • PolarColorSpace
    • PromiseOr
    • RectangularColorSpace
    • info
  • Устаревшее
    • types
      • Boolean
      • Color
      • Error
      • List
      • Map
      • Null
      • Number
      • String
    • LegacyException
    • LegacyImporterThis
    • LegacyPluginThis
    • LegacyResult
    • LegacySharedOptions
    • LegacyStringOptions
    • LegacyAsyncFunction
    • LegacyAsyncFunctionDone
    • LegacyAsyncImporter
    • LegacyFunction
    • LegacyImporter
    • LegacyImporterResult
    • LegacyOptions
    • LegacySyncFunction
    • LegacySyncImporter
    • LegacyValue
    • FALSE
    • NULL
    • TRUE
    • render
    • renderSync
  • Сообщения
    • Version
    • Устаревание
    • DeprecationOrId
    • DeprecationStatus
    • deprecations

© 2006–2025 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/js-api/interfaces/LegacySharedOptions

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API