需要用node去读文件夹与文件属性:
const fs = require('fs');
const path = require('path');
function getDirectoriesWithIndexVue(directory) {
let result = [];
const files = fs.readdirSync(directory, { withFileTypes: true });
for (const file of files) {
if (file.isDirectory()) {
const subDir = path.join(directory, file.name);
const indexPath = path.join(subDir, 'index.vue');
if (fs.existsSync(indexPath)) {
result.push(file.name);
}
result = result.concat(getDirectoriesWithIndexVue(subDir));
}
}
return result;
}
// 与 root 文件夹同级的下执行, 进入 root
const rootDirectory = './src';
const items = getDirectoriesWithIndexVue(rootDirectory);
console.log(items); // 输出包含 index.vue 文件的子文件夹名称
输出:
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241104/ffd21f69efee9800f40487580cdf2d69.png)