有時候我們需要遞歸讀取某個目錄下的指導後綴文件。(目錄保護子目錄)
const path = require('path')
const fs = require('fs')
var walk = function(dir) {
var results = []
var list = fs.readdirSync(dir)
list.forEach(function(file) {
// 排除static靜態目錄(可按你需求進行新增)
if (file === 'static') {
return false
}
file = dir + '/' + file
var stat = fs.statSync(file)
if (stat && stat.isDirectory()) {
results = results.concat(walk(file))
} else {
// 過濾後綴名(可按你需求進行新增)
if (path.extname(file) === '.html') {
results.push(path.resolve(__dirname, file))
}
}
})
return results
}
function dealScri(arr) {
arr.forEach(filepath => {
var fileStr = fs.readFileSync(filepath, 'utf-8')
// fileStr = fileStr.replace(/[\n]|[\r]/g, "")
// fileStr = fileStr.replace(/(\<head\>.*?)(\<script.*?\<\/script\>){1,}(.*\<\/head\>)/g, '$1$3')
fs.writeFileSync(filepath, fileStr)
})
}
console.log('執行seo打包後的head')
dealScri(walk('./dist'))
walk 函數就是通過遞歸取目錄,最終返回符合條件的數組數據
dealScri 是處理文件流的