Gulp - 将多个文件复制到单独的路径



我正在开发一个使用 Node.js 的 Web 应用程序。在这个应用程序中,我有一个 Gulp 文件。我正在使用 Gulp 4。在我的构建过程中,我尝试一次将多个文件复制到目录。我的目录结构如下所示:

./
  dest/
  source/
    child/
      index.js
      index.bak
    file.js
    README.md

我真正的目录结构涉及更多。但是,我正在尝试将./source/file.js复制到./dest/file.js./source/child/index.js复制到./dest/child/index.js。请注意,我不想将README.mdindex.bak复制到./dest directory。为了做到这一点,我有以下功能:

function copy() {
  let files = [
    'source/file.js',
    'source/child/**/*.*'
  ];
  return gulp
    .src(files)
    .pipe(gulp.dest('dest'))
  ;
}

我的问题是,所有内容都被复制到dest目录中。目录结构不会保留。虽然如果我能弄清楚如何在单个任务中将文件复制到不同的目录,那就太好了。我尝试了以下方法:

function copy() {
    return gulp
        .src('source/child/index.js')
        .pipe(gulp.dest('dest/child'))
        .src('source/file.js')
        .pipe(gulp.dest('dest'))
    ;            
}

但是,这种方法只会生成一个错误,指出:

TypeError: gulp.src(...).pipe(...).src is not a function

所以,我被困住了。我不确定如何将多个文件从单个 gulp 任务复制到多个目录。

您需要使用此处提到的 base 选项引用。它将确保您的目录按原样复制。

function copy() {
  let files = [
    'source/file.js',
    'source/child/**/*.*'
  ];
  return gulp
    .src(files, {base: 'source/'})
    .pipe(gulp.dest('dest'));
}

相关内容

最新更新