基本完成v1.0
This commit is contained in:
99
pc-cattle-transportation/clean-console-logs.js
Normal file
99
pc-cattle-transportation/clean-console-logs.js
Normal file
@@ -0,0 +1,99 @@
|
||||
/**
|
||||
* 清理 Vue 文件中的 console.log 调试语句
|
||||
* 保留 console.error 和 console.warn
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// 需要清理的目录
|
||||
const targetDirs = [
|
||||
'src/views',
|
||||
'src/components'
|
||||
];
|
||||
|
||||
// 统计信息
|
||||
let totalFiles = 0;
|
||||
let cleanedFiles = 0;
|
||||
let totalLogsRemoved = 0;
|
||||
|
||||
/**
|
||||
* 递归遍历目录
|
||||
*/
|
||||
function walkDir(dir, callback) {
|
||||
const files = fs.readdirSync(dir);
|
||||
|
||||
files.forEach(file => {
|
||||
const filePath = path.join(dir, file);
|
||||
const stat = fs.statSync(filePath);
|
||||
|
||||
if (stat.isDirectory()) {
|
||||
walkDir(filePath, callback);
|
||||
} else if (file.endsWith('.vue') || file.endsWith('.js') || file.endsWith('.ts')) {
|
||||
callback(filePath);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理文件中的 console.log
|
||||
*/
|
||||
function cleanFile(filePath) {
|
||||
totalFiles++;
|
||||
|
||||
let content = fs.readFileSync(filePath, 'utf-8');
|
||||
const originalContent = content;
|
||||
|
||||
// 计算原有的 console.log 数量
|
||||
const logCount = (content.match(/console\.log\(/g) || []).length;
|
||||
|
||||
if (logCount === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 移除 console.log 语句(保留 console.error 和 console.warn)
|
||||
// 匹配整行的 console.log
|
||||
content = content.replace(/^[ \t]*console\.log\([^)]*\);?\s*$/gm, '');
|
||||
|
||||
// 移除行内的 console.log(可能在其他代码之后)
|
||||
content = content.replace(/console\.log\([^)]*\);?\s*/g, '');
|
||||
|
||||
// 清理多余的空行(但保留最多2个连续空行)
|
||||
content = content.replace(/\n\n\n+/g, '\n\n');
|
||||
|
||||
// 如果内容有变化,写回文件
|
||||
if (content !== originalContent) {
|
||||
fs.writeFileSync(filePath, content, 'utf-8');
|
||||
cleanedFiles++;
|
||||
totalLogsRemoved += logCount;
|
||||
console.log(`✓ 清理 ${path.relative(process.cwd(), filePath)} (移除 ${logCount} 个 console.log)`);
|
||||
}
|
||||
}
|
||||
|
||||
// 主函数
|
||||
console.log('='.repeat(60));
|
||||
console.log('开始清理前端 console.log 调试语句');
|
||||
console.log('='.repeat(60));
|
||||
console.log();
|
||||
|
||||
targetDirs.forEach(dir => {
|
||||
const fullPath = path.join(__dirname, dir);
|
||||
if (fs.existsSync(fullPath)) {
|
||||
console.log(`正在扫描目录: ${dir}`);
|
||||
walkDir(fullPath, cleanFile);
|
||||
} else {
|
||||
console.log(`⚠ 目录不存在: ${dir}`);
|
||||
}
|
||||
});
|
||||
|
||||
console.log();
|
||||
console.log('='.repeat(60));
|
||||
console.log('清理完成!');
|
||||
console.log('='.repeat(60));
|
||||
console.log(`总文件数: ${totalFiles}`);
|
||||
console.log(`清理文件数: ${cleanedFiles}`);
|
||||
console.log(`移除的 console.log 总数: ${totalLogsRemoved}`);
|
||||
console.log();
|
||||
console.log('注意:console.error 和 console.warn 已保留');
|
||||
console.log('='.repeat(60));
|
||||
|
||||
Reference in New Issue
Block a user