javascript – gulp-filter没有正确过滤掉排除的文件

前端之家收集整理的这篇文章主要介绍了javascript – gulp-filter没有正确过滤掉排除的文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用gulpjs代替grunt进行项目.我正在尝试使用gulp过滤器在我的代码上运行jsHint时忽略供应商库.我的代码基于自述文件代码,但文件尚未过滤.

我正在运行节点0.10.26,gulp 3.8.0和gulp filter 0.4.1

我正在尝试在包含JS文件的许多其他目录的目录wcui / app / js上运行jshint,总共大约120个js文件.我想只排除供应商目录.

我的代码看起来像这样:

var gulp = require('gulp');
var gulpFilter = require('gulp-filter');
var jshint = require('gulp-jshint');

var srcs = {
    scripts: ['wcui/app/js/**/*.js'],styles:  ['wcui/app/css/**/*.less','wcui/app/css/**/*.css']
};

var dests = {
    scripts: 'wcui/static/js/',styles: 'wcui/static/css/'
};

gulp.task('scripts',function() {
    var filter = gulpFilter('!wcui/app/js/vendor');
    return gulp.src(srcs.scripts)
        .pipe(filter)
        .pipe(jshint())
        .pipe(jshint.reporter('jshint-stylish'))
        .pipe(filter.restore)
        .pipe(gulp.dest(dests.scripts));
});

gulp.task('styles',function() {
    return gulp.src(srcs.styles)
        .pipe(gulp.dest(dests.styles));
});

gulp.task('dev',['scripts','styles']);

现在运行gulp dev就像我添加过滤器之前做的一样,linting每个js文件.如何更改此选项以使其正确过滤? gulp示例的格式为’wcui / app / js / * .js’,但是当我承认** glob时,我根本没有得到子目录.除此之外,我想我正在关注这封信的自述文件(对我的特定任务进行了更改).

解决方法

对于拥有更新版gulp-filter的读者(在撰写本文时发布的版本是1.0.0)

gulp-filter版本0.5.0的发布引入了multimatch 0.3.0,其中发生了重大变化.

Breaking change

Using a negate ! as the first pattern no longer matches anything.

Workaround: ['*','!cake']

基本上,它意味着你需要更换

var filter = gulpFilter('!wcui/app/js/vendor');

var filter = gulpFilter(['*','!wcui/app/js/vendor']);

你很高兴.

另外,正如MildlySerIoUs的评论中所指出的,你应该有.pipe(filter.restore())而不是.pipe(filter.restore)

猜你在找的JavaScript相关文章