[英]How do I delete all files that match the basename in an array of globs?
我的gulpfile
有一个现有的build
任务,该任务将“源”文件的集合转换为“ dist”文件。 我有一组众所周知的文件名,它们告诉我的build
任务要对哪些文件进行操作:
sourceFiles: [
"./js/source/hoobly.js",
"./js/source/hoo.js"
]
我的build
任务由此产生了以下文件:
./js/dist/hoobly.js
./js/dist/hoobly.min.js
./js/dist/hoobly.js.map
./js/dist/hoobly.min.js.map
./js/dist/hoo.js
./js/dist/hoo.min.js
./js/dist/hoo.js.map
./js/dist/hoo.min.js.map
现在,我想编写一个相应的clean
任务,以删除在build
任务期间生成的文件。 不幸的是,我不能只删除./js/dist/
目录中的所有文件,因为其中包含不是由该build
任务生成的其他文件,因此我需要确保删除的文件与以下文件的“基本名称”匹配原始的sourceFiles
。
我的问题是:我该如何使用sourceFiles
数组并对其进行“调整” *,以便最终可以调用类似以下内容的东西:
gulp.src(sourceFiles)
.pipe(munge()) // I don't know what to do here!!
.pipe(del()); // does a `del ./js/dist/hoobly.*`
// and a `del ./js/dist/hoo.*`
(*技术术语为“ munge” ...)
你能为我指出正确的方向吗? 我看过各种NPM软件包(乙烯基路径,gulp-map-files,gulp-glob等),但我越来越迷路了。
我会gulp.src
传递给gulp.src
:
var sourceFiles = [ "./js/source/hoobly.js", "./js/source/hoo.js" ]; var filesToDelete = sourceFiles.map(f=>f.replace("/source/", "/dist/").replace(".js", ".*")); console.log(filesToDelete)
并且省略munge
的步骤:
gulp.src(filesToDelete).pipe(del())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.