成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

nodejs分離html文件里面的js和css

dailybird / 3180人閱讀

摘要:摘要本文要實現(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 = /[s|S]*?/ig;
    let jsReg = /";
    let styleCollection, scriptColletion;
    let cssContent = "", jsContent = "", htmlContentStr = "";

    let originContent = await readHtml();
    styleCollection = originContent.match(cssReg);
    scriptColletion = originContent.match(jsReg);
    
    // 處理 css
    for (let i =0;i/g,"").replace(//g, "").replace(/("")/g,"")
    
    for (let i =0;i

歡迎評閱和指正!我是貳伶邇

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/103352.html

相關(guān)文章

  • 如何打造一個令人愉悅前端開發(fā)環(huán)境(一)

    摘要:我覺得這方面的原因是當(dāng)時對和的依賴,導(dǎo)致大家對的興趣不弄,錯過了最佳時機,這個其實跟百度自己的的技術(shù)棧有很大關(guān)系。這個阮一峰對于前端構(gòu)建的變化吐槽過,說新的構(gòu)建工具就是的構(gòu)建工具。 文章來源 最近幾年,前端發(fā)展越來越迅速,各種萌新加入了前端這個大家庭,大有趕IOS、超Android的趨勢呀!同時,萌新們提出了各種前端工作問題,除了最基礎(chǔ)的html、css、js三板斧之外,最讓人頭疼的應(yīng)...

    KavenFan 評論0 收藏0
  • 如何打造一個令人愉悅前端開發(fā)環(huán)境(一)

    摘要:我覺得這方面的原因是當(dāng)時對和的依賴,導(dǎo)致大家對的興趣不弄,錯過了最佳時機,這個其實跟百度自己的的技術(shù)棧有很大關(guān)系。這個阮一峰對于前端構(gòu)建的變化吐槽過,說新的構(gòu)建工具就是的構(gòu)建工具。 文章來源 最近幾年,前端發(fā)展越來越迅速,各種萌新加入了前端這個大家庭,大有趕IOS、超Android的趨勢呀!同時,萌新們提出了各種前端工作問題,除了最基礎(chǔ)的html、css、js三板斧之外,最讓人頭疼的應(yīng)...

    Yangyang 評論0 收藏0
  • webpack工程化集成React技術(shù)棧(一)

    項目開始前,我們先聊一聊關(guān)于項目的一些說明。該項目起始于2017年初,當(dāng)時公司主要技術(shù)棧為gulp+angular,鑒于react的火熱的生態(tài),在公司決定研發(fā)bss管理系統(tǒng)時選用react開發(fā),目的也是為react native打下基礎(chǔ),以解決后期公司大前端技術(shù)棧的逐步成熟。(當(dāng)時沒有選擇vue開發(fā)的主要原因是weex生態(tài)還不夠特別成熟),既然決定換新,項目的構(gòu)建也跟著一起換,從gulp轉(zhuǎn)向火熱的...

    tianhang 評論0 收藏0
  • 用gulp+mock實現(xiàn)前后端分離

    摘要:當(dāng)然需要的工具不只有這些,其他的一些可選工具還有文件壓縮壓縮時用到的文件重命名檢查一般編輯器自帶校驗提示工具等等,具體根據(jù)項目需要安裝。 gulp 前端自動化構(gòu)建工具 需要配置nodejs環(huán)境, 利用npm安裝全局gulp,安裝后可以輸入gulp指令。 npm install gulp -g 創(chuàng)建項目目錄、初始化npm包、gulp npm init gulp init 下載gul...

    dailybird 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<