1

フォルダーに zip ファイルがあり、その (zip 形式の) ファイルの 1 つを抽出して、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() が呼び出されるとすぐに、チャンクの名前が zip ファイルの名前に変更されます。

  • 名前変更関数呼び出しで使用するために、以前のパイプのファイルパスにアクセスまたは保存するにはどうすればよいですか?
  • パスにグロブ "./sourcefiles_unpacked/" が含まれている場合、gulp.dest は正しく構成されていますか?
4

1 に答える 1