摘要:摘要本文要實現(xiàn)的內(nèi)容,使用對文件的增刪改查,演示的例子分離出一個文件里面的和里面的內(nèi)容,然后多帶帶生成文件和文件。下面是執(zhí)行一個主方法的一個過程歡迎評閱和指正我是貳伶邇
摘要: 本文要實現(xiàn)的內(nèi)容,使用nodejs 對文件的增刪改查,演示的例子-》分離出一個html 文件里面的script 和style 里面的內(nèi)容,然后多帶帶生成js文件和css 文件。中間處理異步的api-》async/await , Promise
項目托管:extract-js-css , 歡迎star
直接上代碼:
// extract-js-css // import fs from "fs" var fs = require("fs") // import csscomb from "csscomb" // var csscomb = require("csscomb") // var comb = new csscomb("zen"); // console.log(comb) // 刪除文件 const deleteFile = (path)=>{ return new Promise(resolve => { fs.unlink(path, (err) => { if (err) { console.log(err) return }; console.log(`已成功刪除 ${path}文件`); resolve() }); }) } // 刪除文件夾 const deleteDir = async (path)=>{ let _files = await new Promise (resolve => { fs.readdir(path, (err,files) => { if (err) { console.log(err) }; console.log(`已成功讀取 ${path} 文件夾`); resolve(files) }) }) if(_files && _files.length) { for(let i =0;i<_files.length;i++) { // console.log(_files[i],"innnnnn") await deleteFile("./test/"+ _files[i]) } } // console.log("delete hou") await new Promise(resolve => { fs.rmdir(path, (err) => { if (err) { console.log(err) }; console.log(`已成功刪除空 ${path}文件夾`); resolve() }) }); } const emptyDir = (path) => { return new Promise(resolve => { fs.rmdir(path, (err) => { if (err) { console.log(err) }; console.log(`已成功刪除空 ${path}文件夾`); resolve() }) }) } // 新建文件夾 /** * */ const mkdirTest = ()=>{ return new Promise(resolve => { fs.mkdir("./test", { recursive: true }, (err, data)=>{ if (err) { console.log(err) }; console.log("新建文件夾成功") resolve() }) }) } // 讀取html 內(nèi)容 /** * */ const readHtml = ()=>{ return new Promise(resolve => { fs.readFile("./test.html", "utf-8", (err, data)=>{ if(err) { throw Error(err) } console.log("test.html 讀取成功!--NO1") resolve(data) }) }) } // 寫入css 和js /** * 向文件中追加內(nèi)容 * @param {是文件名字} path * @param {寫入文件的內(nèi)容} data * @param {文件類型} type * @author erlinger * @time */ const appendFile = (path, data, type) => { return new Promise(resolve => { fs.appendFile(path, data, (err) => { if (err) { console.log(err) }; console.log(`${type}數(shù)據(jù)已追加到文件`); resolve() }); }) } // 寫一個html const writeHtml = (path, data) => { return new Promise(resolve => { fs.writeFile(path, data, (err) =>{ if(err) { console.log("err", err) return } console.log(`${path} 寫入成功,功能結(jié)束!`); resolve() // 必須resolve 。不然 promise 就到此為止,調(diào)用該方法后面的代碼將不執(zhí)行 }) }) } // 插件 方法入口 (async ()=>{ console.log("==========================game-start============================="); await deleteDir("./test"); console.log("我應(yīng)該是等---刪除文件夾后---才出現(xiàn)") await mkdirTest(); console.log("我應(yīng)該是在---文件夾新建成功---后出現(xiàn)!"); let cssReg = /