55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
/**
|
|
* @file 单独编译css文件
|
|
* @author mengke01(kekee000@gmail.com)
|
|
*/
|
|
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var less = require('less');
|
|
var BASE_DIR = process.cwd();
|
|
|
|
// 默认的文件列表
|
|
var DEFAULT_FILES = [
|
|
'css/main.less',
|
|
'css/preview.less'
|
|
];
|
|
|
|
|
|
main(process.argv.slice(2));
|
|
|
|
function main(fileList) {
|
|
var list = fileList.length ? fileList : DEFAULT_FILES;
|
|
list.forEach(function (filePath) {
|
|
filePath = path.resolve(BASE_DIR, filePath);
|
|
less2css(filePath);
|
|
});
|
|
}
|
|
|
|
|
|
function compileLess(code, options, onsuccess) {
|
|
less.render(code, options).then(function (output) {
|
|
onsuccess(output.css);
|
|
}, function (error) {
|
|
throw error;
|
|
});
|
|
}
|
|
|
|
function less2css(filePath) {
|
|
if (!fs.existsSync(filePath)) {
|
|
throw new Error('file not exist:' + filePath);
|
|
}
|
|
var paths = [
|
|
__dirname
|
|
];
|
|
var options = {
|
|
relativeUrls: true,
|
|
compress: true,
|
|
paths: paths,
|
|
filename: filePath
|
|
};
|
|
compileLess(fs.readFileSync(filePath, 'utf-8'), options, function (code) {
|
|
fs.writeFileSync(filePath.replace(/\.less$/, '.css'), code);
|
|
console.log('build less success:' + filePath);
|
|
});
|
|
}
|