//导入fs模块
const fs = require('fs')
//导入path模块
const path = require('path')
//匹配style标签的正则
// \s表示空白字符, \S表示非空白字符
const regStyle = /<style>[\s\S]*<\/style>/
const regScript = /<script>[\s\S]*<\/script>/
//读取要被处理的html文件
fs.readFile(path.join(__dirname,'./index.html'),'utf-8',function(err,dataStr){
//读取html文件失败
if(err){
return console.log('读取HTML文件失败'+err.message)
}
//读取html文件成功, 调用对应方法,拆解出css,js,html文件
// resolveCSS(dataStr)
// resolveHTML(dataStr)
resolveJS(dataStr)
})
//处理CSS样式
function resolveCSS(htmlStr){
//使用正则提取页面中的<style></style>标签
const r1 = regStyle.exec(htmlStr)
//将提取出来的样式字符串做进一步处理
const newCSS= r1[0].replace('<style>','').replace('</style>','')
// console.log(newCSS)
//将提取出来的css样式, 写入index.css文件中
fs.writeFile(path.join(__dirname,'./index.css'),newCSS,function(err){
if(err){
return console.log('写入css样式失败!'+err.message)
}
console.log('写入css样式成功')
})
}
//处理JS脚本
function resolveJS(htmlStr){
//使用正则表达式提取页面的<script></script>标签
const r2 = regScript.exec(htmlStr)
//将提取出来的样式字符串做进一步处理
const newJavascript = r2[0].replace('<script>','').replace('</script>','')
console.log(newJavascript)
//将提取出来的javascript脚本, 写入index.js文件中
fs.writeFile(path.join(__dirname,'./index.js'),newJavascript,function(err){
if(err){
return console.log('写入JavaScript失败'+ err.message)
}
console.log('写入JavaScript成功')
})
}
node.js案例:抽出特定的文件
最新推荐文章于 2024-07-05 16:35:25 发布