简介
itay-gulp-changed 是一个 npm 包,它是一个基于 Gulp 的文件变化检测工具,主要用于对静态文件的监控。
如果你是一名前端工程师,那么你肯定了解 Gulp,它提供了一套构建工具链,可以方便地让我们执行任务,并自动化化地完成一些重复而且繁琐的工作。而 itay-gulp-changed 的作用主要是在 Gulp 中,检测文件变动,从而提高编译的速度。
安装
安装 itay-gulp-changed,只需要在终端使用 npm 安装即可。
npm install itay-gulp-changed --save-dev
这个过程需要从 npm 上下载包,并将其添加到 package.json 的 devDependencies 中。
使用方法
使用 itay-gulp-changed,首先需要在 gulpfile.js 中引入它,并且在任务中使用。
const gulp = require('gulp'); const changed = require('itay-gulp-changed'); gulp.task('default', function () { return gulp.src('./src/*.js') .pipe(changed('./dist')) .pipe(gulp.dest('./dist')); });
这个任务的作用是将 src 目录下的 js 文件,编译到 dist 目录下。如果 src 目录下的某个文件发生了变化,gulp-changed 可以快速地检测到,并只重新编译更新了的文件,从而提高编译速度。
在上面的代码中,我们使用了 src() 方法取得要编译的源文件,然后使用 pipe() 方法,将 itay-gulp-changed 作为管道注册,并将 dist 目录作为第一个参数传入。最后,将文件通过 dest() 方法写入到 dist 目录下。
指令参数
在 itay-gulp-changed 中,我们还可以设置很多参数来定制我们的编译策略。
首先,我们可以根据文件的修改时间来检测文件是否被修改过,使用 itay-gulp-changed 的 options 属性,设置其中的 hasChanged 属性为 changed.IN_MOD_TIME 或 changed.IN_CONTENT。
gulp.task('default', function () { return gulp.src('./src/*.js') .pipe(changed('./dist', { hasChanged: changed.IN_MOD_TIME })) .pipe(gulp.dest('./dist')); });
同时,我们还可以设置比较函数来判断两个文件是否相等。这个比较函数需要能够判断两个文件的内容是否相同,如果返回 true,表示两个文件相同,不需要重新编译。如果返回 false,则表示两个文件不同,需要重新编译。
-- -------------------- ---- ------- -------------------- -------- -- - ------ ---------------------- ----------------------- - ----------- -------------- --- --------------------------- --- -------- -------------- -------- - ----------------------- --- - -- ---------------------- --- ------------------------- - ----------------------- - ------ ----- - ---- - ------ ------ - --- -
结论
itay-gulp-changed 可以帮助我们在 Gulp 的构建工具链中,达到快速编译的目的。通过检测文件变化,只重新编译修改过的文件,从而缩短了编译时间。同时,我们可以根据自己的需要,设置 itay-gulp-changed 的不同参数,实现更加定制化的编译策略。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f35f4efdbf7be33b2566ee2