Glob忽略模式似乎不适用于gulp

时间:2017-01-31 04:18:10

标签: node.js gulp glob

我有一个使用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 CLI:1.2.2
  • gulp本地版本:3.9.1
  • node:6.9.2

1 个答案:

答案 0 :(得分:2)

您可以在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));
});