gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 05:00:10 25 4
gpt4 key购买 nike

我正在尝试在一个项目中使用 gulpjs 而不是 grunt。在我的代码上运行 jsHint 时,我试图使用 gulp 过滤器忽略 vendor 库。我的代码基于自述文件示例中的代码,但文件未被过滤。

我正在运行 Node 0.10.26、gulp 3.8.0 和 gulp 过滤器 0.4.1

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

我的代码是这样的:

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 做的事情和我添加过滤器之前做的一样,检查每个 js 文件。我怎样才能改变它以使其正确过滤? gulp 示例的 src 格式为 'wcui/app/js/*.js' 但是当我承认 ** glob 时,我根本没有得到子目录。除此之外,我认为我正在严格按照自述文件进行操作(针对我的特定任务进行了更改)。

最佳答案

对于拥有最新版本 gulp-filter 的读者(撰写本文时的版本为 1.0.0)

发布版本0.5.0gulp-filter介绍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 - gulp-filter 没有正确过滤掉排除的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24235860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com