如何删除全局数组中所有与基本名称匹配的文件?

时间:2019-01-03 09:31:16

标签: javascript gulp glob

我的nullValuePropertyMappingStrategy中有一个现有的build任务,该任务将“源”文件的集合转换为“ dist”文件。我有一组众所周知的文件名,它们告诉我的gulpfile任务要对哪些文件进行操作:

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

(*技术术语,"munge" ...)

您能指出我正确的方向吗?我查看了各种NPM软件包(乙烯基路径,gulp-map-files,gulp-glob等),但越来越迷路了。

1 个答案:

答案 0 :(得分:2)

在将全局变量传递给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())