【发布时间】:2014-10-19 14:42:25
【问题描述】:
我尝试为我的个人网站项目创建一个 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' -> 对复制过程没有影响。
我还更改了“复制数据”任务在运行列表中的位置。实际上这是第一个运行的任务。无论是第一个还是最后一个,行为似乎都没有变化。
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 被完全忽略。
【问题讨论】:
-
如果 'base' 是根目录,则不需要该选项。可能是您的选择模式之一不正确。您能给我们介绍一下文件夹结构吗?
-
你在
copy-data任务之前有运行其他任务吗? -
遇到了同样的问题。这有帮助,谢谢。
-
您应该将以上内容添加为下面的答案并选中已回答的框。
-
您是在复制没有扩展名的文件吗?您当前的 glob 仅捕获带有扩展名的文件。尝试改用
'./data/**/*'。
标签: javascript gulp