使用gulp.src()包含所有文件EXCEPT js文件不在第三方目录中

时间:2016-10-23 16:40:07

标签: gulp

我正在尝试将所有文​​件复制到不在目录3rd中的js文件中。

这就是我在做的事情:

return gulp.src([
        'src/**/*',
        '!src/**/*.js', // no js files from src
        'src/**/3rd/*.js' // make sure to get 3rd party js files though
    ])
    .pipe(gulp.dest('dist'));

然而,这不会复制任何js文件:(

1 个答案:

答案 0 :(得分:1)

在gulp 3.x中,传递给gulp.src()的globs不会按顺序进行评估。这意味着无法排除一组文件,然后重新包含已排除文件的子集。

这可以通过upcoming gulp 4.0

实现
  

传递给gulp.src的globs将按顺序进行评估,这意味着这可能是gulp.src(['*.js', '!b*.js', 'bad.js'])(排除以b开头的每个JS文件除bad.js

对于gulp 3.x,有gulp-src-ordered-globs个包可用于代替常规gulp.src()

var gulpSrc = require('gulp-src-ordered-globs');

return gulpSrc([
    'src/**/*',
    '!src/**/*.js', // no js files from src
    'src/**/3rd/*.js' // make sure to get 3rd party js files though
  ])
  .pipe(gulp.dest('dist'));