gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:23:37 25 4
gpt4 key购买 nike

我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com