文件系统模块3(拆分文件案例)

// 导入
const fs = require('fs')
const path = require('path')
// 匹配正则表达式
// 样式
const regStyle = /<style>[\s\S]*<\/style>/
// js
const regScript = /<script>[\s\S]*<\/script>/
fs.readFile(path.join(__dirname, '/拆分html.html'), 'utf8', (err, dataStr) => {
    if (err) return console.log('读取失败' + err.message)
    // 读取成功后拆分css,js,html文件
    resolveCSS(dataStr)
    resolveJS(dataStr)
    resolveHTML(dataStr)
})
// exec()方法:检索正则表达式的匹配方法

// 定义处理css样式的方法
function resolveCSS(htmlStr) {
    const r1 = regStyle.exec(htmlStr)
    // console.log(r1)
    // 将提取出来的样式进行replace替换操作
    const newCSS = r1[0].replace('<style>','').replace('</style>','')
    // console.log(newCSS)
    // 调用fs.writeFile提取写入
    fs.writeFile(path.join(__dirname,'/day/day3/拆分.css'),newCSS,function(err){
        if(err)return console.log('写入样式失败'+err.message)
        console.log('写入样式文件成功 ');
    })
}
// 定义处理js样式的方法
function resolveJS(htmlStr) {
    const r2 = regScript.exec(htmlStr)
    // console.log(r2)
    // 将提取出来的样式进行replace替换操作
    const newJS = r2[0].replace('<script>','').replace('</script>','')
    // console.log(newJS)
    // 调用fs.writeFile提取写入
    fs.writeFile(path.join(__dirname,'/day/day3/拆分.js'),newJS,function(err){
        if(err)return console.log('写入js样式失败'+err.message)
        console.log('写入js文件成功 ');
    })
}
// 定义处理html样式的方法
function resolveHTML(htmlStr) {
    const newhtml = htmlStr.replace(regStyle,'<link rel="stylesheet" href="./day/day3/拆分.css">').replace(regScript,'<script src="./day/day3/拆分.js"></script>')
    fs.writeFile(path.join(__dirname,'/day/day3/拆分.html'),newhtml,function(err){
        if(err)return console.log('写入html失败'+err.message)
        console.log('写入html文件成功 ');
    })
}
注:fs.writeFile()方法不能创建文件夹
  新方法会覆盖久方法内容

  

posted @ 2022-10-19 01:08  文采呱呱  阅读(20)  评论(0编辑  收藏  举报