Gulp不会按预期复制所有文件

Mou*_*ain 24 javascript gulp

我试图为我的个人网站项目创建一个gulpfile.js.我之前从未这样做过,但有一点'试错'现在它以可接受的方式运作.

即使经过1000次修改,唯一不起作用的是简单复制文件和文件夹.

var files = {
  data_src : [
    './files.json',
    'data/**/*.*'
  ],
  distribution_dest : '_distribution'
};

gulp.task('copy-data', function() {
  gulp.src(files.data_src, { base: './' })
    .pipe(gulp.dest(files.distribution_dest))
    .pipe(notify({message: 'Data copied for distribution!'}));
});
Run Code Online (Sandbox Code Playgroud)

这应该将所有子文件夹和文件复制到gulp.dest.但它只复制了其中的一半,即使我更改了名称等,也会忽略一些文件夹.(没有特殊字符,与正确复制的一次相同的子文件夹结构......) - 没有任何效果.我只是看不到任何模式.

运行gulp时没有错误消息.没有什么可以帮助我找到错误.

为什么某些文件夹或文件被排除在复制之外?


base用来保存文件夹/子文件夹结构; 尝试使用和不使用"base" - >对复制过程没有影响.

我还改变了运行列表中"复制数据"任务的位置.实际上这是第一个运行的任务.无论是第一个还是最后一个,行为似乎都没有变化.

gulp.task('default', function() {
  gulp.run('copy-data', 'custom-sass', 'framework-sass', 'custom-js', 'framework-js', 'replace-tags', 'browser-sync');
    ... some watches ...
});
Run Code Online (Sandbox Code Playgroud)

数据文件夹的结构如下所示:

./data
   |-doc
   |---content
   |---template
   |-img
   |---chart
   |---icon
   |---logo
   |---pattern
   |---people
   |---photo
   |---symbol
   |-----brandklassen
   |-----brandschutzzeichen
   |-----gebotszeichen
   |-----gefahrensymbole
   |-----rettungszeichen
   |-----verbotszeichen
   |-----verkehrsrechtzeichen
   |-----warnzeichen
   |---wallpaper
Run Code Online (Sandbox Code Playgroud)

/data/doc并且所有子文件夹都可以.
/data/img/chart/data/img/people也行.

/data/img/photo21张图片中只有14张被复制.
/data/img/symbol与子文件夹,/data/img/wallpaper完全被忽略.

Mou*_*ain 32

解决了我自己!该问题是由异步操作任务引起的.return在继续之前添加强制gulp以完成复制过程!

gulp.task('copy-data', function() {
    return gulp.src(files.data_src, { base: './' })
    .pipe(gulp.dest(files.distribution_dest))
    .pipe(notify({message: 'Data copied for distribution!'}))
});
Run Code Online (Sandbox Code Playgroud)

现在所有图像都将被复制!

  • 伟大的!谢谢它真的很有帮助 (2认同)