Gulp:如何删除文件夹?

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

我使用

del
包来删除文件夹:

gulp.task('clean', function(){
    return del('dist/**/*', {force:true});
});

...但是,如果

dist
文件夹及其包含许多子目录[递归],有没有简单的方法可以删除它及其所有内容?

Ps:我不想这样做:

dist/**/**/**/**/**/**/...
,当有很多子目录时。

gulp
4个回答
42
投票

你的代码应该是这样的:

gulp.task('clean', function(){
     return del('dist/**', {force:true});
});

根据npm del docs“**”删除dist的所有子目录(ps:不要删除dist文件夹):

“全局模式 ** 匹配所有子级和父级。”

参考


9
投票

根据文档: 全局模式 ** 匹配所有子项和父项。 您也必须明确忽略父目录

gulp.task('clean', function(){
     return del(['dist/**', '!dist'], {force:true});
});

此处提供更多信息:del 文档


6
投票

进口:

const { src, dest, series, parallel } = require('gulp');
const del = require('del');

一行:

function clean(cb) {
  del(['./dist/'], cb());
}

或者,分两行:

function clean(cb) {
  del(['./dist/']);
  cb();
}

最后:

exports.default = series(clean, parallel(process1, process2));

0
投票

如果您收到错误:

The requested module 'del' does not provide an export named 'default'
,那是因为 del 有重大更改(至少从版本 7 开始)

您应该使用:

import {deleteAsync} from 'del'
function clean() {
    console.log("Clean")
    return deleteAsync([
        'dest/fileToDelete*',
        'directoryToDelete'
    ])
}
© www.soinside.com 2019 - 2024. All rights reserved.