如何复制多个文件并保持文件夹结构与Gulp?

Nul*_*teя 72 javascript css gulp

我正在尝试使用gulp将文件从一个文件夹复制到另一个文件夹

gulp.task('move-css',function(){
  return gulp.src([
    './source/css/one.css',
    './source/other/css/two.css'

    ]).pipe(gulp.dest('./public/assets/css/'));
});
Run Code Online (Sandbox Code Playgroud)

上面的代码复制one.css&two.csspublic/assets/css文件夹

如果我使用gulp.src('./source/css/*.css')它将所有css文件复制到public/assets/css文件夹,这不是我想要的

我的问题是如何选择多个文件并保持文件夹stracture?

Anu*_*l S 127

为此,请说明base.

base - 指定相对于cwd的文件夹.默认是glob开始的地方.这用于在保存时确定文件名.dest()


在你的情况下,它将是:

gulp.task('move-css',function(){
  return gulp.src([
      './source/css/one.css',
      './source/other/css/two.css'
  ],  {base: './source/'}) 
  .pipe(gulp.dest('./public/assets/'));
});
Run Code Online (Sandbox Code Playgroud)

文件夹结构:

|-gulpfile.js
|-source
|   |-css
|   |-other
|      |-css
|-public
|   |-assets
Run Code Online (Sandbox Code Playgroud)

  • 如果您的文件具有完全不同的目录结构(例如`['./lib/one.js','./ model/tw.js']`),您可以添加`{base:'.'}`以使其保持不变他们的整个结构. (18认同)