批量文件内容替换工具 replace.js
递归遍历指定路径下的目录文件,并替换内容
replace.js
// replace.js
const path = require('path');
const fs = require('fs');
const SRC_PATH = path.resolve(__dirname, '..', 'src');
const rArray = [
[/@mdf\/baseui/g, 'yonui-ys/lib/index']
]
const doReplace = async (fullPath) => {
const content = fs.readFileSync(fullPath, 'utf8');
const newContent = rArray.reduce((result, item) => {
const [reg, str] = item;
return result.replace(reg, str);
}, content);
fs.writeFileSync(fullPath, newContent, { encoding: 'utf8' });
}
const replace = (root = SRC_PATH) => {
fs.readdir(root, (err, files) => {
if (err) console.error(err);
files.forEach(async (file) => {
const fullpath = path.resolve(root, file);
fs.stat(fullpath, (err, stats) => {
if (err) console.error(err);
if (stats.isFile()) {
doReplace(fullpath);
} else if (stats.isDirectory()) {
replace(path.resolve(root, file));
}
})
})
})
}
module.exports = replace;
run.js
require('./replace')();
至此,结束!