1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _less = require('less');
|
8 |
|
9 | var _less2 = _interopRequireDefault(_less);
|
10 |
|
11 | var _fs = require('fs');
|
12 |
|
13 | var _path = require('path');
|
14 |
|
15 | var _path2 = _interopRequireDefault(_path);
|
16 |
|
17 | var _postcss = require('postcss');
|
18 |
|
19 | var _postcss2 = _interopRequireDefault(_postcss);
|
20 |
|
21 | var _rucksackCss = require('rucksack-css');
|
22 |
|
23 | var _rucksackCss2 = _interopRequireDefault(_rucksackCss);
|
24 |
|
25 | var _autoprefixer = require('autoprefixer');
|
26 |
|
27 | var _autoprefixer2 = _interopRequireDefault(_autoprefixer);
|
28 |
|
29 | var _lessPluginNpmImport = require('less-plugin-npm-import');
|
30 |
|
31 | var _lessPluginNpmImport2 = _interopRequireDefault(_lessPluginNpmImport);
|
32 |
|
33 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
34 |
|
35 | function transformLess(lessFile) {
|
36 | var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
37 | var _config$cwd = config.cwd,
|
38 | 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 |
|
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 |
|
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 |
|
71 | exports.default = transformLess;
|
72 | module.exports = exports['default']; |
\ | No newline at end of file |