Merge branch 'dev/1.0' into custom/common

This commit is contained in:
2026-01-08 15:10:46 +08:00
parent aa2f13f3b2
commit 23c954981b
92 changed files with 1975 additions and 382 deletions

View File

@@ -0,0 +1,62 @@
const fs = require('fs');
const path = require('path');
/**
* 递归删除空目录
* @param {string} dirPath - 要检查的目录路径
* @param {boolean} dryRun - 是否只打印不删除
*/
function removeEmptyDirectories(dirPath, dryRun = false) {
try {
// 读取目录内容
const files = fs.readdirSync(dirPath);
// 递归检查子目录
for (const file of files) {
const fullPath = path.join(dirPath, file);
const stat = fs.statSync(fullPath);
if (stat.isDirectory()) {
removeEmptyDirectories(fullPath, dryRun);
}
}
// 再次读取目录内容,因为子目录可能已经被删除
const updatedFiles = fs.readdirSync(dirPath);
// 如果目录为空
if (updatedFiles.length === 0) {
console.log(`${dryRun ? 'Would remove' : 'Removing'} empty directory: ${dirPath}`);
if (!dryRun) {
fs.rmdirSync(dirPath);
}
}
} catch (error) {
console.error(`Error processing directory ${dirPath}:`, error.message);
}
}
/**
* 主函数
*/
function main() {
// 获取项目根目录
const projectRoot = path.resolve(__dirname, '..');
console.log('Starting to remove empty directories...');
console.log(`Project root: ${projectRoot}`);
console.log('====================================');
// 执行删除操作
removeEmptyDirectories(projectRoot);
console.log('====================================');
console.log('Empty directory cleanup completed!');
}
// 运行主函数
if (require.main === module) {
main();
}
module.exports = removeEmptyDirectories;