node批量重命名文件

2020-04-09  本文已影响0人  Chris__Liu

业务需要将js文件批量转成tsx文件,可自定义配置

const path = require('path')
const fs = require('fs')

let basePath = path.resolve(__dirname, 'src')

function mapDir(dir, finish) {
    fs.readdir(dir, function (err, files) {
        if (err) {
            console.error(err)
            return
        }
        files.forEach((filename, index) => {
            if (filename.match(/\.js$/)) {
                fs.rename( path.join(dir, filename) ,path.join(dir , filename.replace('js','tsx')), (err) => {
                    if (err) throw err;
                });
            }
            let pathname = path.join(dir, filename)
            fs.stat(pathname, (err, stats) => { // 读取文件信息
                if (err) {
                    console.log('获取文件stats失败')
                    return
                }
                if (stats.isDirectory()) {
                    mapDir(pathname, finish)
                } 
            })
            if (index === files.length - 1) {
                finish && finish()
            }
        })
    })
}

mapDir(
    basePath,
    function () {
        console.log('重命名完成')
    }
)
上一篇下一篇

猜你喜欢

热点阅读