前两天得到个需求都给项目中所有的Form表单添加一个labelWrap属性,因为项目文件比较多,用到的Form也特别多,想着一个个处理很麻烦,还容易漏掉,于是写了node脚本,实现了集中修改
const fs = require("fs");
const path = require("path");
function search(dir) {
let files = []; // 保存所有文件名
let tmp = fs.readdirSync(dir); // 读取当前目录
tmp.forEach((file) => { // 遍历当前目录
let fullPath = path.join(dir, file); // 获取当前文件的绝对路径
if (fs.statSync(fullPath).isDirectory()) { // 如果是文件夹 递归
[].push.apply(files, search(fullPath));// 将递归结果合并
} else {
if (fullPath.match(/.*\.tsx$/)) { // 如果是ts文件
fs.readFile(fullPath, "utf-8", (err, data) => { // 读取文件
// 替换
const newData = data.replace(/<Form /g, "<Form labelWrap "); // 替换
fs.writeFile(fullPath, newData, (err) => { // 写入文件
if (err) throw err;
});
});
}
}
});
return files;
}
search("../src");