rimraf。递归删除特定文件夹以外的文件和文件夹

时间:2017-10-23 09:36:34

标签: node.js glob

├───app
│   ├───modules
│   │   ├───asd
│   │   │   ├───angular
│   │   │   │   ├───src
│   │   │   │   └───test
│   │   │   ├───app
│   │   │   │   └───src
│   │   │   ├───base
│   │   │   │   └───src
│   │   │   │       └───client
│   │   │   ├───common
│   │   │   │   ├───json
│   │   │   │   │   ├───src
│   │   │   │   │   └───test
│   │   │   │   ├───src
│   │   │   │   └───test
│   │   │   └───test
│   │   ├───core
│   │   │   ├───base
│   │   │   │   ├───docs
│   │   │   │   └───src
│   │   │   ├───ui
│   │   │   │   ├───directives
│   │   │   │   │   └───src
│   │   │   │   │       └───bmbDropdownMenu
│   │   │   │   │           └───css
│   │   │   │   ├───directives.CategorizedList
│   │   │   │   │   └───docs
│   │   │   │   ├───directives.noResults
│   │   │   │   │   └───lang
│   │   │   │   └───directives.popover
│   │   │   │       └───docs

是否可以删除" app / modules"中的所有文件和目录。异常文件夹"核心"通过rimraf或其他模块? 我尝试这样做(没有工作):

rimraf('./app/modules/(!(core)|**)/*.*', callback);

2 个答案:

答案 0 :(得分:0)

var globby = require('globby');
var rimraf = require('rimraf');

globby(['*', '!app/modules/core.js'])
  .then(function then(paths) {
    paths.map(function map(item) {
      rimraf.sync(item);
    });
  });

有关详细信息,请参阅globby documentation

信用:vladimir-starkov

答案 1 :(得分:0)

我花了很多时间在这上面,但却发现rimraf并不支持全球化。

我改为使用del,它支持与gulp相同的格式(路径数组,包括否定的路径)。