nodejs 批量编译less 文件为css

我们在用less时,有时会有很多less块,一个一个手动编译很麻烦,使用下面的代码,可以一次性递归编译 在项目less文件目录,新建个js文件。粘贴代码如下:


var fs = require('fs'),
path = require('path'),
exec = require('child_process').exec,
sourcePath, targetPath;

 //获取命令行中的路径
process.argv.forEach(function (val, index, array) {
if (index == 2) {
    sourcePath = val;
}
if (index == 3) {
    targetPath = val;
}
})

var lessc = function (rootPath, targetPath) {
//取得当前绝对路径
rootPath = path.resolve(rootPath);
//目标路径绝对路径
targetPath = path.resolve(targetPath);
//判断目录是否存在
fs.exists(rootPath, function (exists) {
    //路径存在
    if (exists) {
        //获取当前路径下的所有文件和路径名
        var childArray = fs.readdirSync(rootPath);
        if (childArray.length) {
            for (var i = 0; i < childArray.length; i++) {
                var currentFilePath = path.resolve(rootPath, childArray[i]);
                var currentTargetPath = path.resolve(targetPath, childArray[i])
                //读取文件信息
                var stats = fs.statSync(currentFilePath);
                //若是目录则递归调用
                if (stats.isDirectory()) {
                    lessc(currentFilePath, currentTargetPath);
                } else {
                    //判断文件是否为less文件
                    if (path.extname(currentFilePath) === ".less") {
                        var newFilePath = path.resolve(targetPath, path.basename(currentFilePath, '.less') + ".css");
                        if (!fs.existsSync(targetPath)) {
                            fs.mkdirSync(targetPath);
                        }
                        console.log(newFilePath);
                        exec("lessc -x " + currentFilePath + " > " + newFilePath);
                    }
                }
            }
        }
    } else {
        console.log("directory is not exists");
    }
   });
}

lessc('./', './css/');

然后运行node

node 新建的js文件



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值