我的 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
的“basename”匹配。
我的问题是:如何使用 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 包(vinyl-paths、gulp-map-files、gulp-glob,...),但我越来越迷失了。
最佳答案
在将 glob 传递给 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())
关于javascript - 如何删除与 glob 数组中的基本名称匹配的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54019503/