广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >gulp-changed插件有什么用
  • 890
分享到

gulp-changed插件有什么用

2024-04-02 19:04:59 890人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关gulp-changed插件有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言gulp-changed插件的作用,是用来过滤未被修改过

这篇文章将为大家详细讲解有关gulp-changed插件有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前言

gulp-changed插件的作用,是用来过滤未被修改过的文件,只有修改后的文件才能通过管道。这样做的好处时,只处理修改后的文件,减少后续程序的执行时间。

根据官方给出的例子:

const SRC = 'src );
});

检测SRC中的文件,然后把从changed()通过的文件输出到DEST文件夹中,然后继续进行后续的操作。在这之前,我写的代码是这样子的,没有传入参数,也没有输出到某文件夹中(gulp.dest(DEST) ):

gulp.task('default', () => {
 return gulp.src('src );
});

然后发现,每次执行时,所有的文件都会通过管道,根本没有过滤的作用。看了源代码之后才知道,传递参数和文件输出是必须的,因为程序里是拿两个文件夹SRC和DEST里的文件进行对比的。

每当检测一个程序时,都会去DEST里的文件夹里寻找这个对应的文件,若DEST最后修改时间发生变化或内容已更新,则表明这是一个新文件,通过管道,否则保留。程序里目前使用的是两个文件最后修改时间的对比,若SRC里的文件的最后修改时间比DEST里文件的最后修改时间要大,说明该文件被修改过。

当然,gulp-changed还提供了一种比较函数:内容的对比。将源文件和目标文件的内容进行sha1加密后,比较两者的加密串,若不相同,则通过管道。

可通过传递参数修改比对函数:

gulp.task('default', () => {
 return gulp.src(SRC)
  .pipe(changed(DEST, {hasChanged: changed.compareSha1Digest}))
  .pipe(gulp.dest(DEST))
  .pipe(  );
});

当然,你可以传递自己定义的函数,但是需支持以下4个参数:

  1. stream 文件通过对比后将sourceFile添加到队列中

  2. callback 函数里的代码执行完毕后的回调函数

  3. sourceFile vinyl 文件对象

  4. destPath 与sourceFile文件对比的目标文件路径

源码讲解

这个方法里,是对两个文件最后修改时间的对比

function compareLastModifiedTime(stream, cb, sourceFile, targetPath) {
 // 获取目标文件的状态
 fs.stat(targetPath, function (err, targetStat) {
 // 若源文件存在
 if (!fsOperationFailed(stream, sourceFile, err)) {
 // 对比两者的最后修改时间
 if (sourceFile.stat.mtime > targetStat.mtime) {
 stream.push(sourceFile);
 }
 }
 cb();
 });
}

这里有个疑问的地方:

  • 若目标文件不存在,则当前情况是无法进行比较的,只能在运行一次之后,产生了目标文件;再修改源文件才能进行对比;新添加的文件同理

mtime, atime, ctime

上面中的mtime表示修改时间,此外,文件还几个跟时间有关的属性,这里也稍微的讲解一下。

ATIME-ACCESS TIME

该字段表示文件中的数据最后一次被访问的时间–通过unix进行直接读取或通过命令行和脚本读取。

CTIME-CHANGE TIME

当您更改文件的所有权或访问权限时,ctime也随之变化。当然,内容更新时,ctime也会发生改变。

MTIME-MODIFY TIME

最后修改时间显示上次更改文件内容的时间。它不与文件权限的变化而变化,并因此用于跟踪文件内容的实际变化。

通过LS显示这三种时间

最简单的确认这些时间的方式是使用ls命令,我现在用的是windows系统,安装了一个ConEmu。

使用ls -l显示的时间就是当前文件最后一次修改的时间,即mtime:

-rw-r--r-- 1 root 1049089   2676 一月 20 03:06 gulpfile.js

使用ls -lu显示的是文件最后一次被访问的时间,即atime:

-rw-r--r-- 1 root 1049089   2676 十一 24 09:18 gulpfile.js

使用ls -lc显示的是文件最后一次权限被修改的时间,即ctime:

-rw-r--r-- 1 root 1049089   2676 一月 20 03:06 gulpfile.js

通过STAT显示这三种时间

使用stat命令可以显示这个文件更加详细的信息:

$ stat gulpfile.js
 File: ‘gulpfile.js'
 Size: 2676   Blocks: 4   IO Block: 65536 regular file
Device: d6be5777h/3602798455d Inode: 844424930178810 Links: 1
Access: (0644/-rw-r--r--) Uid: (1435492/root) Gid: (1049089/ UNKNOWN)
Access: 2015-11-24 09:18:34.008292400 +0000
Modify: 2016-01-20 03:06:34.035859700 +0000
Change: 2016-01-20 07:04:40.432046400 +0000
 Birth: 2015-11-24 09:18:33.965292400 +0000

关于“gulp-changed插件有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: gulp-changed插件有什么用

本文链接: https://www.lsjlt.com/news/79002.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • gulp-changed插件有什么用
    这篇文章将为大家详细讲解有关gulp-changed插件有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言gulp-changed插件的作用,是用来过滤未被修改过...
    99+
    2022-10-19
  • gulp插件的del模块怎么用
    这篇文章主要介绍了gulp插件的del模块怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。del 模块的简介:   ...
    99+
    2022-10-19
  • ngAnimate插件有什么用
    这篇文章主要介绍ngAnimate插件有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ngAnimate插件是做什么的?ngAnimate插件如其名字一样是为元素提供动画的。怎...
    99+
    2022-10-19
  • js插件Swiper有什么用
    小编给大家分享一下js插件Swiper有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! Sw...
    99+
    2022-10-19
  • jQuery插件ajaxFileUpload有什么用
    jQuery插件ajaxFileUpload是用于实现文件上传功能的插件。通过使用ajaxFileUpload插件,可以在不刷新页面...
    99+
    2023-08-18
    jQuery ajaxFileUpload
  • react有什么插件
    这篇文章主要介绍了react有什么插件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react有什么插件文章都会有所收获,下面我们一起来看看吧。 r...
    99+
    2022-10-19
  • webpack4中splitChunk插件有什么用
    这篇文章主要介绍webpack4中splitChunk插件有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!常用参数minSize(默认是30000):形成一个新代码块最小的体积...
    99+
    2022-10-19
  • golang跳转插件是什么?有什么用?
    随着计算机科学和编程语言的不断发展,开发人员需要掌握不同的技术和工具,以便更好地处理他们的工作。Go语言(也称为Golang)是一种快速、高效的编程语言,它可以轻松地处理大量数据、多线程和网络通信。在Golang中,跳转是一项基本任务,可以...
    99+
    2023-05-14
  • MatrixOne的Eclipse插件MxEclipse有什么用
    这篇文章将为大家详细讲解有关MatrixOne的Eclipse插件MxEclipse有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MX-Eclipse 0.9.2有了这个插件以后写eMatrix ...
    99+
    2023-06-03
  • Eclipse的插件MyBatis Editor有什么用
    这篇文章将为大家详细讲解有关Eclipse的插件MyBatis Editor有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MyBatis Editor是一个Eclipse的插件,用来编辑MyBat...
    99+
    2023-06-17
  • PostgreSQL的插件pg_variables有什么作用
    本篇内容主要讲解“PostgreSQL的插件pg_variables有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL的插件pg_va...
    99+
    2022-10-18
  • TBProAudio SLM2 for Mac插件有什么用
    小编给大家分享一下TBProAudio SLM2 for Mac插件有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!TBProAudio SLM2是一款智能立体声响度最大化器,包括“...
    99+
    2022-10-19
  • Google开源Eclipse插件有什么用
    本篇内容介绍了“Google开源Eclipse插件有什么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Google的Eclipse插件GP...
    99+
    2023-06-17
  • Paint Stick for Mac插件有什么用
    这篇文章主要介绍Paint Stick for Mac插件有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PAInt Stick for Mac版官方介绍PAInt&Stick,坚持现场演出!直接与您的自定义画...
    99+
    2023-06-02
  • vue插件组件库用法有什么区别
    Vue作为一个流行的前端框架,具有组件化的设计思想。为了方便开发者,Vue社区中涌现出了很多的插件和组件库,其中包括了很多优秀的UI组件,例如Element UI、Ant Design Vue等。然而,初学Vue的开发者可能会感到困惑,不知...
    99+
    2023-05-18
  • jQuery中的validation插件有什么作用
    本篇内容介绍了“jQuery中的validation插件有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • jQuery中Pagination分页插件有什么用
    小编给大家分享一下jQuery中Pagination分页插件有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!插件简介此j...
    99+
    2022-10-19
  • Red Hat上的Nagios插件有什么用
    这篇文章主要介绍了Red Hat上的Nagios插件有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Nagios的插件简介Nagios本身并不包含任何监控机制,其所有的...
    99+
    2023-06-16
  • jquery有什么第三方插件
    这篇文章主要介绍“jquery有什么第三方插件”,在日常操作中,相信很多人在jquery有什么第三方插件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery有什么第三方...
    99+
    2022-10-19
  • OFX插件BorisFX Sapphire 2020 for Mac有什么用
    小编给大家分享一下OFX插件BorisFX Sapphire 2020 for Mac有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!OFX插件BorisF...
    99+
    2023-06-05
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作