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文件

时间: 2024-10-09 18:53:03

nodejs 批量编译less 文件为css的相关文章

本地或者是koala软件编译less文件为css

背景: 事情的起因是这般的,平时工作是在线上办公,样式是使用less来写,于是乎,这样我从线上download下来的less文件无法直接在自己的本地环境运行.有一个问题就是我要把less文件先编译成css文件,这样我才能在文件引入使用.对了,那我为什么不从线上拿通过前端构建工具打包编译好的css文件,这个已经被编译好的文件时有的,但是我只想取某一小段,要去找又因为被压缩过,找起来不方便,才有下面的内容.两个方法,1.我在本地装了less.2.另一种方法下载koala软件来编译less代码. 一.

Python3下不要版本号批量编译.pyc文件

code say: #encoding=utf-8 #author: walker #date: 2016-06-28 #summary: 编译当前文件夹下所有.py文件 import os, sys, shutil import py_compile cur_dir_fullpath = os.path.dirname(os.path.abspath(__file__)) #清空目录 def ClearDir(dir):     print('ClearDir ' + dir + '...')

使用.bat 文件,批量编译项目文件。

使用.bat 文件,批量编译项目文件. 2008-6-1来源:www.aspcool.com 作者:PCJIM 点击:次 使用.bat 文件,批量编译由VS.NET生成的一个或多个解决方案中的各项目文件.将该批处理文件与Microsoft Visual SourceSafe结合起来使用,可以提高整个项目源代码的编译速度. 主要通过Devenv 命令行开关,Devenv 允许您设置集成开发环境 (IDE) 的各个选项,以及从命令行生成.调试和部署项目.使用这些开关从脚本或 .bat 文件运行 ID

批量编译目录下文件的Makefile

1.多C文件生成各自可执行文件的Makefile如果一个目录下有很多C文件,且每个C文件都能生成一个独立的可执行文件,那么想全编译这些C文件并生成各作的可执行文件,在该目录下编写一个Makefile文件,就能做到时. #定义所需变量C = gccCFLAGS = -Wall -O -g -o #编译链接-oSRCS =$(wildcard *.c)OBJS =$(patsubst %.c,%,$(SRCS)).PHONY:all cleanall:$(OBJS)%:%.c        $(CC

CFR - another java decompiler批量反编译jar文件(转)

CFR - another java decompiler批量反编译jar文件 jd-gui众所周知,业界公认的反编译必备工具. 笔者目前遇到一个java项目,社区版,想做一个本地化的版本,询问官方,官方说闭源,无奈之下只能反编译了. 面对那么多jar,jd-gui一个个去反编译保存,工作量的确很大.幸好在网上找到一个不错的工具 高能预警:jd-gui反编译的错误的,你敢不敢放到cfr来反编译试一试,保证有惊喜. CFR - another java decompiler 特性: CFR wil

前端开发环境之GRUNT自动WATCH压缩JS文件与编译SASS文件

前端开发环境之GRUNT-JAVASCRIPT任务运行器 前言: 1.sass编译为css文件,早先时刻写css,后来看了sass挺不错的,于是在新的项目中开始使用上了sass. 原方法: ①安装ruby ②编译sass文件(eg:style) sass style.scss style.css ③监控文件/文件夹的变化来自动编译sass文件 sass --watch style.scss:style.css #file sass --watch cssFilePath            

如何使用NodeJs来监听文件变化

1.前言 在我们调试修改代码的时候,每修改一次代码,哪怕只是很小的修改,我们都需要手动重新build文件,然后再运行代码,看修改的效果,这样的效率特别低,对于开发者来说简直不能忍. 2.构建自动编译工具 如何使用nodeJs来监听文件变化,一旦源文件修改保存时,自动运行build过程.比如当你写CoffeeScript文件或SASS文件时,保存之后可即时生成对应的JS或CSS. 基于Node.JS的侦听文件夹改变的模块有很多. a .  fs.watch.Node.JS的文件系统也可侦听某个目录

编译Less文件

LESS官方文档 一.通过命令行进行编译(可实时监听并编译) 用起来比较复杂,但效率比较高. 步骤一:安装Node.js nodeJS下载地址 // 配置环境变量 右键点击计算机-[属性]-[高级系统设置]-[高级]-[环境变量]-[系统变量]-[新建] NODE_PATH=安装地址 // 通过windows自带的cmd来测试NodeJS和npm的版本 // 使用命令行查看版本,检测是否安装成功 (npm是NodeJs自带的包管理工具) node -v npm -v 安装Less // 安装Le

不带插件 ,自己写js,实现批量上传文件及进度显示

今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是自己想要的.然后自己查阅各种资料,经过自己总结,最终完成了这个功能. 如果大家有什么问题可以提出来,一起交流,学习.有什么不对的地方也指出来,我也虚心学习.自己也是刚写博客,您们的赞是我写博客的动力,谢谢大家. 条件:我采用struts2,java ,ajax,FormData实现; 1.实现的逻辑