我在 src 文件夹中有很多 dist 文件夹。它可以嵌套在任何深度。
src
- dist
- main
- dist
- com
- dist
....
- test
- dist
- com
- dist
我需要 rimraf 中的命令来删除 src 文件夹内的所有此类 dist 文件夹。
我尝试了 rimraf
src/**/dist
、src/*/dist
、src/**/*/dist
,但它们都不起作用,事实上我收到错误消息 Error: Illegal characters in path.
如果使用 rimraf 无法做到这一点,是否有其他使用 Node js 的更简单的解决方案?乏味的解决方案可能是在我使用 fs 或其他东西获取目录结构后编写自己的脚本来递归调用 rimraf 。
您应该能够使用
--glob
标志:
rimraf src/*/dist --glob
这是一个基本的
init.js
文件,用于设置文件夹结构:
import * as fs from 'fs/promises';
await fs.mkdir('src/main/dist', { recursive: true });
await fs.mkdir('src/main/com/dist', { recursive: true });
await fs.mkdir('test/dist', { recursive: true });
await fs.mkdir('test/com/dist', { recursive: true });
console.log('Done...'); // Created all directories
这是
clean.js
:
import { rimraf } from 'rimraf';
// rimraf src/*/dist --glob
await rimraf('src/*/dist', { glob: true });
console.log("Done..."); // Removed all dist/ (sub)directories