首页 > 代码库 > nodejs 批量编译less 文件为css

nodejs 批量编译less 文件为css

http://www.html-js.com/article/1359

我们在用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文件

nodejs 批量编译less 文件为css