文件系统模块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()方法不能创建文件夹
新方法会覆盖久方法内容
代码改变了我们,也改变了世界

浙公网安备 33010602011771号