UNPKG

enb

Version:

Faster BEM/BEViS assembler

63 lines (57 loc) 1.97 kB
/** * css-stylus * ========== * * Технология устарела. Используйте пакет `enb-stylus`. */ var Vow = require('vow'); var stylus = require('stylus'); module.exports = require('./css').buildFlow() .name('css-stylus') .deprecated('enb', 'enb-stylus') .defineOption('variables') .useFileList(['css', 'styl']) .builder(function (sourceFiles) { var _this = this; var promise = Vow.promise(); var css = sourceFiles.map(function (file) { var path = file.fullname; if (file.name.indexOf('.styl') !== -1) { return '/* ' + path + ':begin */\n' + '@import "' + path + '";\n' + '/* ' + path + ':end */\n'; } else { return '@import "' + path + '";'; } }).join('\n'); var targetName = _this._target; var renderer = stylus(css) .define('url', function (url) { return new stylus.nodes.Literal('url(' + _this._resolveCssUrl(url.val, url.filename) + ')'); }); if (this._variables) { var variables = this._variables; Object.keys(variables).forEach(function (key) { renderer.define(key, variables[key]); }); } _this._configureRenderer(renderer) .render(function (err, css) { if (err) { promise.reject(err); } promise.fulfill(css); }); return promise.then(function (css) { return _this._processIncludes(css, _this.node.resolvePath(targetName)); }); }) .methods({ _resolveCssUrl: function (data, filename) { return this._getCssPreprocessor()._resolveCssUrl(data, filename); }, _configureRenderer: function (renderer) { return renderer; } }) .createTech();