gpt4 book ai didi

javascript - 在 gulp.rename() 调用中使用早期 gulp.src 的文件名

转载 作者:行者123 更新时间:2023-11-30 13:46:46 24 4
gpt4 key购买 nike

我在一个文件夹中有一个 zip 文件,我想提取它的一个(压缩的)文件并在文件夹 中给它一个文件名模式 source file basename + .xml./sourcefiles_unpacked/

./sourcefiles/test.zip

=>

./sourcefiles/test.zip
./sourcefiles_unpacked/test.xml

使用 gulp-unzip 可以很好地解压缩和过滤,但是我不确定如何从 gulp.src 调用中访问文件名。

gulp.task('unzip-filtered-rename', function() {
return gulp.src(paths.unzip_sourcefiles)
// .pipe(debug())
.pipe(plumber({
errorHandler: notify.onError('unzip-filtered-rename error: <%= error.message %>')
}))
.pipe(changed(paths.excel_targetdir_local_glob, {
extension: '.xml'
}))
.pipe(unzip({filter : function(entry){return minimatch(entry.path, "contents.xml")}}))
.pipe(gulp.rename(function(path){

// ? What do I put here to rename each target file to
// ? its originating zip file's basename?


})) // "==> test.xml",
.pipe(gulp.dest(paths.sourcefiles_unpacked)) // sourcefiles_unpacked: "./sourcefiles_unpacked/"
});

只要 gulp.rename() 被调用, block 就会被重命名为它在 zip 文件中的名称。

  • 如何访问或存储早期管道的文件路径以用于重命名函数调用?
  • 如果路径包含 glob“./sourcefiles_unpacked/”,是否正确配置了 gulp.dest?

最佳答案

试试这个:

const glob = require("glob");
const zipFiles = glob.sync('sourcefiles/*.zip');

gulp.task('unzip-filtered-rename', function (done) {

zipFiles.forEach(function (zipFile) {

const zipFileBase = path.parse(zipFile).name;

return gulp.src(zipFile)
// .pipe(debug())
// .pipe(plumber({
// errorHandler: notify.onError('unzip-filtered-rename error: <%= error.message %>')
// }))
// .pipe(changed(paths.excel_targetdir_local_glob, {
// extension: '.xml'
// }))
// .pipe(unzip({filter : function(entry){return minimatch(entry.path, "contents.xml")}}))
.pipe(rename({
basename: zipFileBase,
}))
.pipe(gulp.dest("./sourcefiles_unpacked")) // sourcefiles_unpacked: "./sourcefiles_unpacked/"
});
done();
});

我注释掉了您出于测试目的所做的其他事情。通过 forEach 或映射运行每个文件允许您在流外部的开头设置一个变量,该变量将在后续流中可用。

另见 How to unzip multiple files in the same folder with Gulp有关设置要在流中使用的变量的更多讨论。

关于javascript - 在 gulp.rename() 调用中使用早期 gulp.src 的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59157236/

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