Gulp 复制最小文件,但不复制 js/css



我正在尝试将所有资产复制到我的公共目录中,但我想要除 JavaScript 和 CSS 文件之外的所有资产,因为它们被连接并缩小为 prod.min.jsprod.min.css所以我想为 min.jsmin.css 文件设置两个例外。

我已经尝试过这个(目前仅适用于 JS)

gulp.src([src + '/**/*', src + '/**/*.min.js', '!' + src + '/**/*.js'])
          .pipe(gulp.dest(dest))

但它导致根本没有JavaScript文件。

怎么能做到这一点?

为 CSS 和 JS 创建单独的 glob 数组。然后,您可以更有选择性地移动哪些内容。

我现在也在处理这个问题。

我修补它的方式(这是一个补丁,因为它不是真正的最佳解决方案)是通过两次传递:

  1. 第一次传递 ->移动所有 ( **/*.*) 文件并否定所有 js 扩展名 ( !**/*.js
  2. 第二遍 ->仅移动缩小的文件 ( **/*.min.js

一个快速任务示例:

gulp.task('move-min-not-src', [], function() {
    var paths = [
        [
            'source-folder/**/*.*',
            '!source-folder/**/*.js'
        ],
        [
            'source-folder/**/*.min.js'
        ]
    ];
    paths.forEach(function(path) {
        gulp.src(path)
            .pipe(
                gulp.dest('destination-folder/')
            );
    });
});

最新更新