【问题标题】:rimraf. recursively remove files and folders except specific folder边缘递归删除特定文件夹以外的文件和文件夹
【发布时间】:2017-10-23 09:36:33
【问题描述】:
├───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

是否可以通过rimraf 或其他模块删除“app/modules”异常文件夹“core”中的所有文件和目录? 我正在尝试这样(不起作用):

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

【问题讨论】:

标签: node.js glob


【解决方案1】:

我在这上面花了很多时间,才发现rimraf 不支持通配符。

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

【讨论】:

    【解决方案2】:
    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

    【讨论】:

    • 不完全是。如果我理解正确,它不会深入工作,例如我不能写: globby(['*/.*', '!dist/app/**/*.*']) -> 找到所有文件,包括dist/app/*.*跨度>
    • 如果您指定要忽略的文件的完整路径应该可以工作 - 请参阅更新
    • 它不会删除文件夹。它只会删除里面的文件。
    猜你喜欢
    • 2012-11-19
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多