nodejs htmlファイルのjsとcssを分離

15679 ワード

要旨:本稿で実現する内容は、nodejsを使用してファイルの削除を変更し、プレゼンテーションの例-』htmlファイルのscriptとstyleの内容を分離し、jsファイルとcssファイルを個別に生成します.中間処理非同期api-async/await,Promise
プロジェクト管理:extract-js-css、starへようこそ
直接コード:
// 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 console.log="" await="" deletefile="" _files="" hou="" new="" promise=""> {
        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   
/**
 * 
 */
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
/**
 *         
 * @param {     } path 
 * @param {       } 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}        `);
            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}     ,    !`);
            resolve() //   resolve 。   promise      ,              
        })
    })
}

//        
(async ()=>{
    console.log('==========================game-start=============================');
    await deleteDir('./test');
    console.log('     ---      ---   ')

    await mkdirTest();
    console.log('     ---       ---   !');

    let cssReg = /