node写一个小脚本,批量将stylus文件编译成css文件
1.首先需要读取文件,所以需要引入node中的文件系统
fs.readdir(dir, function(err, files) {});读取一个文件夹,dir:文件夹名,callback参数files:返回dir下所有的文件名
fs.statSync(path).isDirectory();判断一个目录是否问一个文件夹
const fs = require('fs');
2.新建一个子进程利用child_process模块
3.将stylus文件实时编译成css文件的命令是
stylus -w styl -o css
将styl文件夹的.styl文件编译到css文件夹下
4.文件夹目录结构
具体实现的代码
const fs = require('fs') const { exec } = require('child_process') // 创建子进程的方法 // 其中最原始的创建方法是spawn,exec,execFile,fork都是对spawan不同程度的封装 // exec的实现原理是启动了一个系统shell来解析参数,通俗解释,用cmd来运行一段命令?它还有一个回调函数 function readFile(dir, callback) { callback(dir); fs.readdir(dir, (err, files) => { if (files && files.length) { files.forEach(file => { var arr = file.split('.'); arr.pop(); var path = dir + '/' + file; if (fs.statSync(path).isDirectory()) { readFile(path, callback); } }) } }) } readFile('styl', function(dir) { var ls = 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}`); }) })
相关推荐
VLilyLUE 2020-06-11
StylusGalaxy 2020-04-29
前端工程师喻文强 2020-04-27
nicepainkiller 2020-02-23
xuelang 2020-01-16
Stylusnebula 2019-12-26
界之边缘的轮回 2019-12-11
VLilyLUE 2019-12-08
didianmanong 2019-11-17
CaiKanXP 2019-11-10
StylusGalaxy 2019-11-09
flyingbird 2019-11-08
星辰的笔记 2016-04-25
Stylusnebula 2019-08-31
碎冰stylus融 2019-07-01
zhouyl0 2019-07-01
crazestylus 2019-07-01
碎冰stylus融 2019-07-01
沉着前进 2019-06-30