Gulps gulp.watch 未针对新文件或已删除文件触发?

2023-12-02

在 glob 匹配中编辑文件时,以下 Gulpjs 任务运行良好:

// watch task.
gulp.task('watch', ['build'], function () {
    gulp.watch(src + '/js/**/*.js', ['scripts']);
    gulp.watch(src + '/img//**/*.{jpg,jpeg,png,gif}', ['copy:images']);
    gulp.watch(src + '/less/*.less', ['styles']);
    gulp.watch(src + '/templates/**/*.{swig,json}', ['html']);
});

// build task.
gulp.task('build', ['clean'], function() {
    return gulp.start('copy', 'scripts', 'less', 'htmlmin');
});

但是,它对于新文件或已删除的文件不起作用(不会触发)。我有什么遗漏的吗?

EDIT:即使使用 grunt-watch 插件,它似乎也不起作用:

gulp.task('scripts', function() {
    return streamqueue(
        { objectMode: true },
        gulp.src([
            vendor + '/jquery/dist/jquery.min.js',
            vendor + '/bootstrap/dist/js/bootstrap.min.js'
        ]),
        gulp.src([
            src + '/js/**/*.js'
        ]).pipe(plugins.uglify())
    )
    .pipe(plugins.concat(pkg.name + '.min.js'))
    .pipe(gulp.dest(dest + '/js/'));
});

gulp.task('watch', ['build'], function () {
    plugins.watch({glob: src + '/js/**/*.js'}, function () {
        gulp.start('scripts');
    });
});

EDIT: 解决了,原来如此这个问题。全局开头为./(这就是src) ATM 机似乎无法工作。


Edit:显然gulp.watch现在可以处理新的或删除的文件。当问题被问到时却没有。

我的答案的其余部分仍然有效:gulp-watch通常是更好的解决方案,因为它允许您仅对已修改的文件执行特定操作,而gulp.watch只允许您运行完整的任务。对于一个合理规模的项目,这很快就会变得太慢而无用。


你没有遗漏任何东西。gulp.watch不适用于新文件或已删除的文件。这是一个专为简单项目设计的简单解决方案。

要获得可以查找新文件的文件监视,请使用the gulp-watch plugin,这更强大。用法如下:

var watch = require('gulp-watch');

// in a task
watch({glob: <<glob or array of globs>> })
        .pipe( << add per-file tasks here>> );

// if you'd rather rerun the whole task, you can do this:
watch({glob: <<glob or array of globs>>}, function() {
    gulp.start( <<task name>> );
});

就我个人而言,我推荐第一个选项。这使得每个文件的处理速度更快。只要您不连接任何文件,它在开发过程中使用 livereload 就可以很好地工作。

您可以使用以下方法来结束您的流my lazypipe library,或者简单地使用一个函数和stream-combiner像这样:

var combine = require('stream-combiner');

function scriptsPipeline() {
    return combine(coffeeescript(), uglify(), gulp.dest('/path/to/dest'));
}

watch({glob: 'src/scripts/**/*.js' })
        .pipe(scriptsPipeline());

UPDATE2014 年 10 月 15 日

正如下面@pkyeck 所指出的,显然 1.0 版本gulp-watch稍微改变了格式,所以上面的例子现在应该是:

var watch = require('gulp-watch');

// in a task
watch(<<glob or array of globs>>)
        .pipe( << add per-file tasks here>> );

// if you'd rather rerun the whole task, you can do this:
watch(<<glob or array of globs>>, function() {
    gulp.start( <<task name>> );
});

and

var combine = require('stream-combiner');

function scriptsPipeline() {
    return combine(coffeeescript(), uglify(), gulp.dest('/path/to/dest'));
}

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

Gulps gulp.watch 未针对新文件或已删除文件触发? 的相关文章

  • Javascript:使用 IIFE 和块语句之间的区别

    IIFE主要用于封装作用域 function let myVar 10 not global 但为什么不直接使用块语句呢 let myVar 10 also not global 除了范围封装之外 进一步使用 IIFE 是否还有其他好处 块
  • 重命名猫鼬中的字段[重复]

    这个问题在这里已经有答案了 我有两个 JSON 对象 每个对象都有一个名字字段 我想将名字重命名为名称 还想使用猫鼬将现有的名字值导入到名称 Schema const mongoose require mongoose const Sche
  • CSS 内边框?

    我纯粹用 CSS 创建了左侧的按钮 它是一个div 中的一个div 然而 右侧的三个按钮是background属性于img标签 我这样做是为了按照以下说明模拟翻转效果here http kyleschaeffer com best prac
  • JS文件中的System.register是什么意思?

    在 Angular 2 中使用指令时 JS 文件中的 System register 是什么意思 我认为这个问题并不特定于 Angular2 中的指令 它是关于 ES6 TypeScript 和其他使用 SystemJS 的现代编译器的一般
  • 将 SVG 路径转换为绝对命令

    给定一个 SVG Path 元素 如何将所有路径命令转换为绝对坐标 例如 转换此路径
  • 为动态加载的 HTML 内容触发 Bootstrap JS 行为

    我正在动态加载包含 Bootstrap 标记的 HTML 模板 但是 Bootstrap Javascript 行为不会应用于加载的内容 例如 如果加载的内容包含 Bootstrap 模式的标记 则该模式将无法正确运行 有没有办法可以触发
  • 个人 Tumblr 帖子上的 Javascript

    我知道您可以编辑在 tumblr 博客上呈现所有帖子博客主页的 html AngularJS 但是 有什么办法可以添加自定义到各个帖子 我想在逐个帖子的基础上做一些 javascript 的东西 但似乎无法找到可以编辑代码的位置 或者 如果
  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • 如何将本地文本文件上传到文本区域(网页内)

    我是一名新手程序员 需要一些帮助来弄清楚如何将本地文本文件上传到我正在构建的网站内的文本区域 我非常精通 HTML CSS 对 Javascript JQuery 有相当的了解 而且我刚刚学习 PHP 您能提供的任何帮助我将不胜感激 我有一
  • 在需要时初始化模块

    我有一个模块 里面有一些初始化代码 加载模块时应执行 init 目前我正在这样做 in the module exports init function config do it in main var mod require myModu
  • Angular 2 将字符串转换为 md5 哈希

    我找到了ts md5 https www npmjs com package ts md5包 但在示例中它有一个hashStr方法 但现在不行了 类型上不存在属性 hashStr Md5 使用该错误后 该错误会记录在我的控制台中 我怎样才能
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • Javascript等待/异步执行顺序

    所以我试图把我的头脑集中在 Promise await async 上 我不明白为什么当 go 执行时 带有 finished 的警报会紧随 console log coffee 之后 当所有函数都使用等待 承诺时 为什么它只等待 getC
  • 如何使用 fetch() 和 WhatWG 流获取文件上传进度

    注意 我并不是在寻找任何替代方案 我知道这可以通过 XMLHttpRequest 来完成 我也不关心浏览器支持 我只想了解新的 即将推出的标准 我有一个File https developer mozilla org en US docs
  • 如果 jquery 验证激活,如何在单选按钮中放置红色边框[重复]

    这个问题在这里已经有答案了 我的问题是 如果 jquery 验证像示例图片中那样激活 我无法使单选按钮具有红色边框 任何人都可以帮我解决这个问题吗 http i38 photobucket com albums e149 eloginko
  • 根据文本内容从 jquery 对象中过滤元素

    我正在尝试使用contains带有 this 关键字 但它给出了错误 JS function var check ul find li filter function return this contains two css color r
  • 如何将数据推送到嵌套对象

    如何将另一个元素推入variables来自以下对象的属性 var request name Name id 3 rules name Rule name tags tagId 1 variables variable var1 matchT
  • Array.of 与“[ ]”。何时使用 Array.of 而不是“[ ]”?

    当我发现时我正在读一些书Array of https developer mozilla org en docs Web JavaScript Reference Global Objects Array of 根据 MDN Array o
  • Html5画布最热门的任意形状

    我正在尝试开发可以在画布中渲染图像和文本的程序 我尝试处理画布中图像的点击 但它适用于可矩形图像 我的问题 您是否知道处理单击画布中图像的可见部分 非透明部分 的解决方案或框架 我正在寻找 ActionScript hitTestObjec
  • 使用
    元素作为 JavaScript 代码的输入。这是最好的方法吗?

    各位 显然 我是编码新手 所以最近完成了一些有关 HTML 和 Javascript 的 Lynda 课程后 我的简单 HTML 页面遇到了困难 基本上 我想要的是使用 JavaScript 进行基本计算 让用户使用 HTML 输入两个数字

随机推荐

  • C/C++ 中的整数除法会遇到精度损失问题吗?

    假设我们有三个整数 int long long long unsigned int 等 变量a b c 通常情况下 执行 c a b 将导致分数截断 但是 c 有可能得到错误的值吗 我不是在谈论 a b 可能超出范围c s type 相反
  • 从 Parse 查询 GeoPoint 并将其作为 MKAnnotation 添加到 MapKit?

    我正在尝试查询存储在 Parse 后端的 PFGeoPoints 数组 我在 Parse 中有一个名为 Post 的 PFObject 并为其分配了 位置 标题 消息 等数据 从我的应用程序发布后 所有内容都会发送到 Parse 并正确存储
  • playframework中的多个文件上传

    我在上传多个文件时遇到一些问题 当我选择x个文件时 它成功通过 但第一个文件正在上传x次 而其他文件根本没有上传 有人能指出我做错了什么吗 Form form Projects uploadPictures project id encty
  • 从 HTML 表中检索过滤后的数据并将其格式化为数组

    我一直在 PHP 系统中开发一个函数 我可以在其中过滤记录 然后将其导出到具有使用 PHPSpreadSheet 模板的 Excel 我的问题是我不知道如何检索上面标题中所述的过滤记录 我想我的代码中遗漏了一些东西 这是我将记录从数据库提取
  • 使用 R 中的 3d Delaunay 三角面板绘制球体表面

    EDIT 更通用的解决方案可以在答案中看到这个问题 我想知道是否有人可以帮助我使用 XYZ 坐标绘制球体表面的近似值 我尝试使用该包计算 Delaunay 三角面板geometry然后用rgl 第一次尝试看起来不错 但不幸的是创建了穿过球体
  • 通过ajax和php动态更新页面

    我想通过ajax将数据提交到数据库 并将数据插入数据库后 该数据应该显示在文件上演示 html最后动态地 即在我的例子中的 div 之后 我已经通过ajax存储数据了 但我不知道如何显示这个新插入的数据演示 html 所以请指导我如何实现这
  • 让长字符串换行的好方法?

    在我的项目中 我有一堆从文件中读取的字符串 其中大多数在命令控制台中打印时 长度超过 80 个字符并且环绕 看起来很难看 我希望能够让 Python 读取该字符串 然后测试它的长度是否超过 75 个字符 如果是 则将字符串拆分为多个字符串
  • 在所有服务器上删除触发器

    我有一个触发器来阻止某人使用 Management Studio CREATE TRIGGER TR LOGON APP ON ALL SERVER FOR LOGON AS BEGIN DECLARE program name NVARC
  • 无法将 list 传输到 Web 服务?

    我的服务器和网络服务上有相同的类 我有以下 WebMethod WebMethod public int CreateOrder List
  • 使用VBA完全控制另一个程序

    我目前正在致力于简化工作流程 它涉及使用串行连接传输数据的 Chatillon DFIS 测力计 数据以文本形式发送到 Chattillon 程序 并且只能保存为 dat 文件 我正在尝试设置一个 Excel 工作簿 它可以自动打开程序并使
  • 当 mobx 存储中的状态发生变化时,Ant-Design Table 不会渲染

    我对 ant design Table 组件中单击一行的行为进行了编程 这应该更改表上的 rowClassName 这是 CodeSandBox 上的示例 当您单击表行时 Store selectedRowKey 中的值会发生变化 但表不会
  • Tika Parser:排除 PDF 附件

    有一个 PDF 文档 其中包含 Tika 不应提取的附件 此处为 joboptions 内容不应发送到 Solr 有没有办法在 Tika 配置中排除某些 或全部 PDF 附件 gagravarr 我们通过以下方式改变了这种行为蒂卡 2096
  • 在 Excel (DAX) 中查找相对于当前行值的行

    有没有办法使用 DAX 根据当前行的值过滤行 我正在使用 power hub 换句话说 如果我有一个表 进度 其中 ID 在每行中递增 并且有一个 百分比 列和另一个包含 我想创建一个名为旧百分比 progress ID 1 百分比的列 这
  • 了解 SQL 中的笛卡尔积

    我无法理解笛卡尔积如何工作 考虑简单的模式 mysql gt select from account account number branch name balance A101 Downtown 500 A102 Perryridge
  • 将多个 yuv 帧转换为一个 yuv 帧

    我有一些 yuv 格式的图像 它们都是我捕获的一个序列的一部分 现在我想通过将它们转换为 mpg4 文件来制作视频 但在此之前 我需要以某种方式从我拥有的所有 yuv 帧中制作一个 yuv 文件 我听说这是可能的 但在互联网上找不到任何东西
  • UIWebView 不会加载带有证书的链接(https:// 前缀)

    我知道以前曾有人问过这个问题 但我已经查看了每个答案 数量不多 但没有一个对我有帮助 我遇到的问题是使用学校电子邮件服务处理证书 这两个电子邮件服务的链接如下 主要学校电子邮箱 https marauder millersville edu
  • 如何用计数和百分比注释水平条形图

    如何获得每个条形右侧的计数和百分比 目前我只知道如何获得计数 import pandas as pd import matplotlib pyplot as plt age 0 17 18 60 61 80 df3 pd DataFrame
  • 正则表达式将 相对 URL 更改为绝对 URL

    我需要查看 HTML 字符串并更改所有内容 img 标签 其中src属性是绝对 URL 的相对地址 所以这 img src puppies jpg 需要成为 img src http sitename com path puppies jp
  • 使用elasticsearch_dsl获取所有行

    目前我正在使用以下程序从弹性搜索中提取 id 及其严重性信息 from elasticsearch import Elasticsearch from elasticsearch dsl import Search Q client Ela
  • Gulps gulp.watch 未针对新文件或已删除文件触发?

    在 glob 匹配中编辑文件时 以下 Gulpjs 任务运行良好 watch task gulp task watch build function gulp watch src js js scripts gulp watch src i