gulp-filter 过滤掉所有文件

2024-01-10

我正在努力将我的工作流程转移到 Gulp,到目前为止我很喜欢它;然而,我似乎误解了 gulp-filter 插件的工作原理......

我有以下任务:

gulp.task('assets', function() {
    var stylesFilter = gulpFilter(stylesPath);
    var imagesFilter = gulpFilter(imagesPath);
    var scriptsFilter = gulpFilter(scriptsPath);

    return gulp.src([].concat('app/**/*.html', stylesPath, imagesPath, scriptsPath))
        // STYLES
        .pipe(stylesFilter)
        .pipe(gulp.dest('dist/test_styles')) // For debugging!
        .pipe(sass({style: 'expanded' }))
        .pipe(autoPrefixer('> 1%', 'last 3 versions', 'Firefox ESR', 'Opera 12.1'))
        .pipe(concat('main.css'))
        .pipe(minifyCss())
        .pipe(rev())
        .pipe(revReplace())
        .pipe(gulp.dest('dist/css'))
        .pipe(stylesFilter.restore())

        // SCRIPTS
        .pipe(scriptsFilter)
        .pipe(gulp.dest('dist/test_scripts')) // For debugging!
        .pipe(jsHint('.jshintrc'))
        .pipe(jsHint.reporter('jshint-stylish'))
        .pipe(concat('app.js'))
        .pipe(uglify())
        .pipe(rev())
        .pipe(revReplace())
        .pipe(gulp.dest('dist/js'))
        .pipe(scriptsFilter.restore())

        // IMAGES
        .pipe(imagesFilter)
        .pipe(gulp.dest('dist/test_images')) // For debugging!
        .pipe(cache(imageMin({ optimizationLevel: 7, progressive: true, interlaced: true })))
        .pipe(rev())
        .pipe(revReplace())
        .pipe(gulp.dest('dist/img'))
        .pipe(imagesFilter.restore());
});

我使用的路径变量定义如下:

var stylesPath = [
    'bower_components/foundation/scss/normalize.scss', 
    'bower_components/foundation/scss/foundation.scss',
    'app/styles/app.scss'
],
scriptsPath = [
    'app/scripts/**/*.js',
    '!app/scripts/**/*_test.js'
],
imagesPath = [
    'app/images/**/*'
];

我的问题是stylesFilter, imagesFilter, and scriptsFilter正在过滤掉一切!我尝试在上面的任务中添加标记为“用于调试”的行,以便查看每个过滤部分中正在处理哪些文件,这表明all文件被过滤掉(即,没有文件被写入磁盘,并且上面的 gulp.dest() 语句标记为用于调试)。如果我在任何一个之后添加一行用于输出文件.pipe(*Filter.restore())它输出原始输入中的所有文件(这是正确的文件)。为了更好地衡量,我还尝试对过滤器使用否定模式,但结果完全相同。

那么我错过了什么?为什么是nothing由过滤器返回?


好的,所以我找到了这种行为的原因:

gulp-filter在幕后使用 multimatch 模块,它使用 Vinyl 文件对象作为它读取的文件,并且它通过File.relative到多重匹配函数(这是与File.base,等于第一个 glob)。所以当我使用'bower_components/foundation/scss/normalize.scss'作为一个球体File.relative仅包含文件名,并且'bower_components/foundation/scss/normalize.scss'不匹配'normalize.scss'.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gulp-filter 过滤掉所有文件 的相关文章

  • 了解设置 JQuery 变量

    了解设置 JQuery 变量 最近 我通过在 StackOverflow 上遇到的另一个问题寻找帮助 了解到如何设置 JQuery 变量 如下所示 您可以通过简单地调用变量来创建输入字段 并且锚变量似乎也定义了样式 var clicked
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 使用模数按字母顺序对列表进行排序

    我在获取元素列表并按字母顺序对它们进行排序方面没有任何问题 但我很难理解如何使用模数来做到这一点 更新 这是按我的方式工作的代码 但是 我更喜欢下面提供的答案的可重用性 因此接受了该答案
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中

随机推荐

  • 将使用react-router v5完成的BreadCrumb组件更改为react router v6

    我想更改使用react router v5完成的BreadCrumb组件以反应router v6 import React from react import Breadcrumbs as MUIBreadcrumbs Link Typog
  • MySQL动态交叉表

    我有一个这样的表 way stop time 1 1 00 55 1 2 01 01 1 3 01 07 2 2 01 41 2 3 01 47 2 5 01 49 3 1 04 00 3 2 04 06 3 3 04 12 我想要一个这样
  • 如何使用 RESTEasy 代理客户端发送查询参数映射

    我正在寻找一种将包含参数名称和值的映射传递到 GET Web 目标的方法 我期待 RESTEasy 将我的地图转换为 URL 查询参数列表 然而 RESTEasy 抛出一个异常说Caused by javax ws rs Processin
  • 递归构建分层 JSON 树?

    我有一个父子关系数据库 数据如下所示 但可以以您想要的任何方式呈现 字典 列表列表 JSON 等 links Tom Dick Dick Harry Tom Larry Bob Leroy Bob Earl 我需要的输出是一个分层 JSON
  • 处理文件名中的特殊字符时批量重命名问题

    我在 c files 中有数百个 mp3 文件 里面有所有可以想象到的文件名 例如 milad mp3 表现良好 嘿你 mp3 文件名中有空格 systemofadown mp3 长文件名 howdy 1 mp3 文件名中的括号 以及最后三
  • 将空图添加到构面,并与另一个构面组合

    Using this SO solution https stackoverflow com questions 30372368 adding empty graphs to facet wrap in ggplot2 I created
  • 可复制的 Coldfusion SQL 异常

    每当 CF 抛出错误时 我都会收到一封包含所有异常信息的电子邮件 每次涉及数据库错误时 我都会得到 SQL WHERE 和 QueryError 信息 这很好 SQL SELECT FooID FROM FooTable WHERE Foo
  • 从会话 Codeigniter 中回显用户

    我是 codeigniter 的新手 我已经实现了一个简单的登录系统 我想在我的视图页面上打印存储在会话中的用户名 这是我的控制器 class LoginController extends CI Controller function i
  • 通过触摸跳转 Unity C#

    我在 Unity C 上编写游戏 这是简单的跑步者 我有 Platformer2DUserControl 脚本 就这个 using UnityEngine using UnitySampleAssets CrossPlatformInput
  • 什么是编程语言? [复制]

    这个问题在这里已经有答案了 可能的重复 什么是计算机编程语言 https stackoverflow com questions 1325686 what is a computer programming language 不完全是 我一
  • 静态 Linkedhashmap 还是 Sharedpreference?

    Android 应用程序具有两种在活动之间传递数据的解决方案 请不要意图额外 public class A public static LinkedHashMap
  • 如何在jquery中右键单击添加dbclick()

    您好 我想在右键单击时使用 dblclick 因为谷歌地图必须放大和缩小 有什么办法可以做到这一点吗 我已经编写了 dblclick 但现在它只需要左键单击即可工作 有关如何执行此操作的任何指示 这是我的代码 div demo1 dblcl
  • Swift 仅针对某些错误类型组合重试

    我有一个自定义管道 我想对一些可恢复的错误代码进行 3 次重试 并且我想为可恢复的错误添加一些短暂的延迟 有人知道我该怎么做吗 func createRequest for message Message gt AnyPublisher
  • 编译期间未包含在目标中的 .h 文件会发生什么情况?

    我有一个 Common h 文件 其中存储了在我的项目中重复使用的所有字符串 namespace Common static const std string mystring IamAwesum 因此 在任何需要特定字符串的文件中 我都包
  • 哪些 std::async 实现使用线程池?

    使用的优点之一std async而不是手动创建std thread对象应该是std async可以在幕后使用线程池来避免超额订阅问题 但是哪些实现可以做到这一点呢 我的理解是微软的实现确实如此 但是其他的呢 async实施 Gnu 的 li
  • 使用 MapReduce 实施 PageRank

    我正在尝试解决使用 MapReduce 实现 PageRank 的理论问题 我有以下具有三个节点的简单场景 A B C 邻接矩阵在这里 A B C B A 例如 B 的 PageRank 等于 1 d N d PR A C A N numb
  • Matlab 中打印函数的 Ghostscript 错误

    我正在尝试使用 Matlab 保存图像print功能 myImage magic 500 myFigure figure visible off r 1 set myFigure PaperUnits inches PaperPositio
  • 业务对象、验证和异常

    我一直在阅读一些有关异常及其使用的问题和答案 似乎有一种强烈的观点认为 仅应针对异常 未处理的情况提出异常 因此 这让我想知道验证如何与业务对象一起工作 假设我有一个业务对象 其中包含对象属性的 getter setter 假设我需要验证该
  • 我正在尝试创建一个情节性的旭日图,但收到错误消息:“dtype:对象,”不是叶子。

    我正在尝试创建一个旭日图 其中不同的行具有不同的长度 并收到错误消息 dtype 对象 不是叶子 我读过这篇文章 请注意 None 条目的父项必须是叶子 即它不能有除 None 之外的其他子项 否则会引发 ValueError 在情节页面上
  • gulp-filter 过滤掉所有文件

    我正在努力将我的工作流程转移到 Gulp 到目前为止我很喜欢它 然而 我似乎误解了 gulp filter 插件的工作原理 我有以下任务 gulp task assets function var stylesFilter gulpFilt