node.js递归取指定后缀文件

有时候我们需要递归读取某个目录下的指导后缀文件。(目录保护子目录)

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(/(\.*?)(\){1,}(.*\<\/head\>)/g, '$1$3')
        fs.writeFileSync(filepath, fileStr)
    })
}
console.log('执行seo打包后的head')
dealScri(walk('./dist'))

walk 函数就是通过递归取目录,最终返回符合条件的数组数据
dealScri 是处理文件流的

你可能感兴趣的:(JavaScript,构建工具)