var fs = require('fs'); var path = require('path'); var filePath = path.resolve(process.cwd(), 'src/pages/Crm'); //调用文件遍历方法 fileDisplay(filePath); /** * 文件遍历方法 * @param filePath 需要遍历的文件路径 */ function fileDisplay(filePath){ // console.log(8977) //根据文件路径读取文件,返回文件列表 fs.readdir(filePath,function(err,files){ console.log(files, 'files'); if(err){ console.warn(err) }else{ //遍历读取到的文件列表 files.forEach(function(filename){ //获取当前文件的绝对路径 var filedir = path.join(filePath,filename); //根据文件路径获取文件信息,返回一个fs.Stats对象 fs.stat(filedir,function(eror,stats){ if(eror){ console.warn('获取文件stats失败'); }else{ var isFile = stats.isFile();// 是文件 var isDir = stats.isDirectory();// 是文件夹 if(isFile){ //这里请根据需要替换后缀名,我的是要把.js替换成.jsx if(filedir.includes('.js')){ const content = fs.readFileSync(filedir) // 读取内容 if (/import React/.test(content)) { rename(filedir, filedir.replace('.js', '.jsx')) } } } if(isDir){ fileDisplay(filedir);// 递归,如果是文件夹,就继续遍历该文件夹下面的文件 } } }) }); } }); } // 修改文件名称 function rename (oldPath, newPath) { fs.rename(oldPath, newPath, function(err) { if (err) { throw err; } }); }