【问题标题】:Gulp glob to ignore file types and not copy empty foldersGulp glob 忽略文件类型而不复制空文件夹
【发布时间】:2016-06-09 19:43:45
【问题描述】:

我为 gulp 创建了一个 glob,它忽略了一组目录中的 javascript 和 coffeescript 文件。我希望它将所有其他文件复制到一个可以正常工作的目录中。唯一的问题是,当只有 javascript 或 coffeescript 文件时,它会复制一个空文件夹。有什么想法可以修改这个 glob 以不复制空文件夹?

gulp.task('copyfiles', function(){
    gulp.src('apps/*/static_src/**/!(*.js|*.coffee)')
        .pipe(gulp.dest('dest'));
});

示例源文件:

apps/appname/static_src/images/image.jpg
apps/appname/static_src/js/script.js

预期输出:

dest/static_src/images/image.jpg

当前输出:

dest/static_src/images/image.jpg
dest/static_src/js/

【问题讨论】:

标签: javascript node.js gulp glob


【解决方案1】:

由于gulp.src 接受almost the same options as node-glob,您可以添加nodir: true作为选项:

gulp.src('apps/*/static_src/**/!(*.js|*.coffee)', { nodir: true })

这将保留来自 src 的 dir 结构,但省略空的。

【讨论】:

  • mmm - 尝试 [globs.images,'!(.ai|.ai)'] 或 globs.images+'!( .ai|.ai)'
【解决方案2】:
gulp.task('copyfiles', function(){
    gulp.src(['apps/*/static_src/**/*','!apps/*/static_src/{js/, js/**}'])
        .pipe(gulp.dest('dest'));
});

我认为您需要一个模式 '!apps/*/static_src/{js/, js/**}' 来匹配目录以及其中的文件,以防止省略空目录。我不确定是否存在仅通过指定目录内容来匹配目录的模式。

【讨论】:

    猜你喜欢
    • 2016-07-28
    • 2019-10-04
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 2017-01-08
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多