当前位置: 首页 > 后端技术 > Node.js

Node写一个小脚本,将stylus文件批量编译成css文件

时间:2023-04-03 15:35:49 Node.js

1、首先需要读取文件,所以需要在node中引入文件系统fs.readdir(dir,function(err,files){});读取一个文件夹,dir:文件夹名,回调参数files:returndir列出所有文件名fs.statSync(path).isDirectory();确定目录是否询问文件夹constfs=require('fs');2.使用child_process模块??新建子进程3.实时编译stylus文件创建css文件的命令是stylus-wstyl-ocss将styl文件夹下的.styl文件编译到css文件夹下4.文件夹目录结构的具体实现代码constfs=require('fs')const{exec}=require('child_process')//创建子进程的方法//最原始的创建方法是spawn,exec,execFile,fork都是对spawan不同程度的封装//exec的实现原理是启动一个系统shell来解析参数,通俗解释,用cmd运行一个命令?它还有一个回调函数functionreadFile(dir,callback){callback(dir);fs.readdir(dir,(err,files)=>{if(files&&files.length){files.forEach(file=>{vararr=file.split('.');arr.pop();varpath=dir+'/'+file;if(fs.statSync(path).isDirectory()){readFile(path,callback);}})}})}readFile('styl',function(dir){varls=exec(`stylus-w${dir.replace('styl','./styl')}-o${dir.replace('styl','./css')}`,(err,stdout,stderr)=>{if(err){console.log(`error:${err}`);}})ls.stdout.on("data",(data)=>{console.log(`stdout:${data}`);})ls.stderr.on("data",(data)=>{console.log(`stderr:${data}`);})ls.on("close",(code)=>{console.log(`子进程退出:${code}`);})})