API технологии stylus
Собирает исходные файлы блоков со стилями, написанными в синтаксисе Stylus (файлы с расширением .styl), или на чистом CSS (файлы с расширением .css).
Использует CSS-препроцессор Stylus для компиляции Stylus-файлов в CSS-код.
Результатом сборки является CSS-файл. Для обработки итогового CSS используется CSS-построцессор postcss.
Опции
target
Тип: String. По умолчанию: ?.css.
Имя файла, куда будет записан результат сборки необходимых .styl- и .css-файлов проекта.
filesTarget
Тип: String. По умолчанию: ?.files.
Имя таргета, откуда будет доступен список исходных файлов для сборки. Список файлов предоставляет технология files пакета enb-bem-techs.
sourceSuffixes
Тип: String | String[]. По умолчанию: ['styl', 'css'].
Суффиксы, по которым отбираются файлы с стилей для дальнейшей сборки.
url
Тип: String. По умолчанию: rebase.
Oбработка url() внутри файлов .styl и .css.
Допустимые значения:
inline — содержимое файла будет закодировано в
base64.Важно!
Максимальный размер по умолчанию
14kb. Можно изменить опциейinlineMaxSize.Не поддерживается кодирование
.svg-файлов с хешем. Например:url(image.svg#hash). Такиеurl()не будут обработаны.
rebase — изменение пути к содержимому относительно таргета.
Пример
blocks/ └── block/ ├── block.styl └── block.png bundle/ └── bundle.css # таргетИсходный файл
block.styl:.block background-image: url(block.png)Файл для подключения на страницу
bundle.css:.block { background-image: url(../../blocks/block/block.png); }
imports
Тип: String. По умолчанию: include.
Раскрытие CSS @import-ов.
Допустимые значения:
include —
@importбудет удален, вместо него в собираемый файл будет добавлено его содержимое.
sourcemap
Тип: String | Boolean. По умолчанию: false.
Построение карт кода (sourcemap) с информацией об исходных файлах.
Допустимые значения:
true — карта хранится в отдельном файле с расширение
.map.inline — карта встраивается в скомпилированный файл в виде закодированной строки в формате
base64.
autoprefixer
Тип: Object | Boolean. По умолчанию: false.
Добавление вендорных префиксов с помощью autoprefixer.
Допустимые значения:
false — отключает
autoprefixer.true — префиксы добавляются для самых актуальных версий браузеров на основании данных сервиса caniuse.com.
options — задание конфигурации в случае, если требуется передать точный список поддерживаемых браузеров.
Пример
{ autoprefixer: { browsers: ['Explorer 10', 'Opera 12'] } }Примечание. Подробнее в документации autoprefixer.
prefix
Тип: String. По умолчанию: ''.
Добавление префикса для CSS-классов.
Важно! Опция работает только для файлов с расширением .styl.
compress
Тип: Boolean. По умолчанию: false.
Минификация CSS-кода. Поддерживает карты кода (sourcemap).
comments
Тип: Boolean. По умолчанию: true.
Обрамление комментариями CSS-кода в собранном файле. Комментарии cодержат относительный путь до исходного файла. Может быть использовано при разработке проекта.
Пример
/* ../../blocks/block/block.styl:begin */
.block
{
background-image: url(../../blocks/block/block.png);
}
/* ../../blocks/block/block.styl:end */
globals
Тип: String | String[]. По умолчанию: [].
Подключает .styl-файлы с глобальными переменными, методами или миксинами в начало.
includes
Тип: String | String[]. По умолчанию: [].
Задает пути, которые будут использованы при обработке @import и url().
Может быть использовано при подключении сторонних библиотек, например, nib.
Важно! Опция работает только для файлов с расширением .styl.
use
Тип: Function | Function[]. По умолчанию: [].
Подключение плагинов или одного плагина для Stylus через use()
Важно! Опция работает только для файлов с расширением .styl.
useNib
Тип: Boolean. По умолчанию: false.
Подключение библиотеки CSS3-миксинов для Stylus – nib.
Важно! Опция работает только для файлов с расширением .styl.
importPaths
Тип: String[]. По умолчанию: [].
Подключение .styl файлов или директорий c index.styl через import()
Важно! Опция работает только для файлов с расширением .styl.
inlineMaxSize
Тип: Number. По умолчанию: 14.
Максимальный размер файла в килобайтах, который будет закодирован в base64 в режиме inline.
Пример
var stylusTech = require('enb-stylus/techs/stylus'),
FileProvideTech = require('enb/techs/file-provider'),
nib = require('nib'),
rupture = require('rupture'),
bemTechs = require('enb-bem-techs');
module.exports = function(config) {
config.node('bundle', function(node) {
// Получаем имена файлов (FileList)
node.addTechs([
[FileProvideTech, { target: '?.bemdecl.js' }],
[bemTechs.levels, { levels: ['blocks'] }],
bemTechs.deps,
bemTechs.files
]);
// Создаем CSS-файлы
node.addTech([stylusTech, {
use: [nib(), rupture()],
importPaths: [nib.path + '/nib']
}]);
node.addTarget('?.css');
});
};
Лицензия
© 2014 YANDEX LLC. Код лицензирован Mozilla Public License 2.0.