UNPKG

2.07 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _less = require('less');
8
9var _less2 = _interopRequireDefault(_less);
10
11var _fs = require('fs');
12
13var _path = require('path');
14
15var _path2 = _interopRequireDefault(_path);
16
17var _postcss = require('postcss');
18
19var _postcss2 = _interopRequireDefault(_postcss);
20
21var _rucksackCss = require('rucksack-css');
22
23var _rucksackCss2 = _interopRequireDefault(_rucksackCss);
24
25var _autoprefixer = require('autoprefixer');
26
27var _autoprefixer2 = _interopRequireDefault(_autoprefixer);
28
29var _lessPluginNpmImport = require('less-plugin-npm-import');
30
31var _lessPluginNpmImport2 = _interopRequireDefault(_lessPluginNpmImport);
32
33function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
35function transformLess(lessFile) {
36 var config = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
37 var _config$cwd = config.cwd;
38 var cwd = _config$cwd === undefined ? process.cwd() : _config$cwd;
39
40 var resolvedLessFile = _path2.default.resolve(cwd, lessFile);
41
42 var data = (0, _fs.readFileSync)(resolvedLessFile, 'utf-8');
43 data = data.replace(/^\uFEFF/, '');
44
45 return new Promise(function (resolve, reject) {
46 // Do less compile
47 var lessOpts = {
48 paths: [(0, _path.dirname)(resolvedLessFile)],
49 filename: resolvedLessFile,
50 plugins: [new _lessPluginNpmImport2.default({ prefix: '~' })]
51 };
52 _less2.default.render(data, lessOpts).then(function (result) {
53 // Do postcss compile
54 var plugins = [(0, _rucksackCss2.default)(), (0, _autoprefixer2.default)({
55 browsers: ['last 2 versions', 'Firefox ESR', '> 1%', 'ie >= 8']
56 })];
57 var source = result.css;
58 var postcssOpts = {};
59
60 (0, _postcss2.default)(plugins).process(source, postcssOpts).then(function (r) {
61 resolve(r.css);
62 }).catch(function (err) {
63 reject(err);
64 });
65 }).catch(function (err) {
66 reject(err);
67 });
68 });
69}
70
71exports.default = transformLess;
72module.exports = exports['default'];
\No newline at end of file