Files
2025-10-30 16:58:39 +08:00

100 lines
2.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 清理 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));