node js rimraf 删除 src 任意子文件夹中的 dist 文件夹

问题描述 投票:0回答:1

我在 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 。

javascript node.js package.json rm node.js-fs
1个回答
1
投票

您应该能够使用

--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
© www.soinside.com 2019 - 2024. All rights reserved.