全局忽略模式似乎不适用于 gulp

Glob ignore pattern does not appear to be working with gulp

我有一个带有 Karma-运行 Jasmine 单元测试的 AngularJS 项目,我正在尝试使用 Gulp 作为我的任务自动化器。我将测试 spec 文件与其他概念文件一起作为 prescribed by the JohnPapa Angular 1 style guide.

我试图使用 glob's ignore option 在我的应用程序串联步骤中忽略 *.spec.js 文件,以防止在分布式应用程序文件中包含测试代码,但它不起作用。

gulp.task('js:concat:application', function() {
  return gulp.src([
    our.js + 'app.js',
    our.js + '**/*.module.js',
    our.js + '**/*.js'
  ], { ignore: ['**/*.spec.js'] })
    .pipe(concat('application.js'))
    .pipe(gulp.dest(our.built.js));
});

我已经尝试了 '*.spec.js''**/*.spec.js''spec.js',以及相同的值,但作为数组中的唯一值,如上所示。

gulp.src's documentation 表示支持 node-glob 的选项(包括 ignore 选项),但按照文档描述的方式添加它们似乎不起作用。在这一点上,我不确定为什么它不起作用。

版本:

您可以排除 gulp.src 中的特定文件,方法是在 glob documentation 中指示的模式前加上感叹号。

gulp.task('js:concat:application', function() {
  return gulp.src([
    our.js + 'app.js',
    our.js + '**/*.module.js',
    our.js + '**/*.js',
    '!**/*.spec.js'])
    .pipe(concat('application.js'))
    .pipe(gulp.dest(our.built.js));
});