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

walk 函數就是通過遞歸取目錄,最終返回符合條件的數組數據
dealScri 是處理文件流的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章