我尝试为我的个人网站项目创建一个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!'}));
});
这应该会复制所有子文件夹和文件到 gulp.dest
,但只复制了其中一半,有些文件夹将被忽略,即使我更改它们的名称等(没有特殊字符,与已正确复制的子文件夹结构相同...)- 无论如何都不行。我只是看不出任何规律。
运行gulp时没有错误消息。没有任何可以帮助我找到错误的东西。
为什么有些文件夹或文件被排除在复制之外?
我使用 base
来保持文件夹 / 子文件夹结构;尝试使用 'base' 与不使用 'base' -> 对复制过程没有影响。
我还改变了 'copy-data' 任务在运行列表中的位置。实际上它是要运行的第一个任务。似乎无论它是第一个还是最后一个,其行为都没有变化。
gulp.task('default', function() {
gulp.run('copy-data', 'custom-sass', 'framework-sass', 'custom-js', 'framework-js', 'replace-tags', 'browser-sync');
... some watches ...
});
数据文件夹的结构看起来像这样:
./data
|-doc
|---content
|---template
|-img
|---chart
|---icon
|---logo
|---pattern
|---people
|---photo
|---symbol
|-----brandklassen
|-----brandschutzzeichen
|-----gebotszeichen
|-----gefahrensymbole
|-----rettungszeichen
|-----verbotszeichen
|-----verkehrsrechtzeichen
|-----warnzeichen
|---wallpaper
/data/doc
和所有子文件夹都没问题。
/data/img/chart
到/data/img/people
也没问题。
在/data/img/photo
中只复制了21张照片中的14张。
/data/img/symbol
及其子文件夹和/data/img/wallpaper
完全被忽略了。
'./data/**/*'
替代。 - MLMgutil = require('gulp-util');
=> https://github.com/gulpjs/gulp-util 这样你就可以做一些像.pipe(less().on('error', gutil.log))
的事情;我不确定它是否有帮助你找到答案,但这是一个好东西需要知道。 - Jason Lydon