gpt4 book ai didi

npm - gulp-newer 与 gulp-changed

转载 作者:行者123 更新时间:2023-12-01 21:58:59 28 4
gpt4 key购买 nike

它们之间有什么区别?

gulp-newer :

gulp.src(imgSrc)
.pipe(newer(imgDest))
.pipe(imagemin())
.pipe(gulp.dest(imgDest));

gulp-changed :

gulp.src(SRC)
.pipe(changed(DEST))
// ngmin will only get the files that
// changed since the last time it was run
.pipe(ngmin())
.pipe(gulp.dest(DEST));

看来gulp-changed更强大,因为它提供了一个选项

hasChanged: changed.compareLastModifiedTime

最佳答案

我希望现在回答这个问题还不算太晚。我必须在最近的一个项目的源代码级别上评估它们,这是我的看法。

gulp-newer

该插件的核心是比较源文件和目标文件的修改时间(请参阅 node API )来确定源文件是否比目标文件新,或者根本不存在目标文件。插件中的相关代码如下:

var newer = !destFileStats || srcFile.stat.mtime > destFileStats.mtime;

gulp 改变

默认情况下,该插件还使用文件的修改时间来决定通过流传递哪个文件

function compareLastModifiedTime(stream, cb, sourceFile, targetPath) {}

但它更进一步,提供了一个比较文件内容 SHA1 哈希值的选项:

function compareSha1Digest(stream, cb, sourceFile, targetPath) {}

这个信息很好documented

结论

所以从理论上讲,如果您使用 gulp-changed 的​​默认 hasChanged:changed.compareLastModifiedTime,每个插件的速度相对与另一个插件一样快。如果您使用 gulp-changed 的​​ hasChanged:changed.compareSha1Digest,则可以合理地预期 gulp-changed 会慢一些,因为它确实创建了文件内容的 SHA1 哈希值。我没有进行基准测试,但我也有兴趣看到一些数字。

选择哪个

gulp-changed,纯粹是因为它背后的开发人员(sindresorhus)。如果有一天这个了不起的人决定他将停止支持他的 gulp 插件,我想我将完全停止使用 gulp。

不过,开玩笑吧,gulp-changed 的​​源代码是 gulp-y,而 gulp-newer 的源代码读起来非常像另一个带有很多 promise 的节点模块的源代码。所以 gulp-changed 的​​另一个+1:)

大量编辑

Gulp-changed 仅适用于 1:1 源:目标映射。如果您需要多个:1,例如与 gulp concat 一起使用时,请选择 gulp-newer。

关于npm - gulp-newer 与 gulp-changed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24730215/

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