节点脚本或npm模块,以检查文件是否已更改

时间:2018-07-09 19:50:41

标签: node.js npm gulp

我正在使用节点模块和npm脚本建立构建系统-没有gulp等。

我需要确定两个文件是否相等,然后再进行不必要的复制。当我过去使用口水时,我使用了the gulp-changed plugin。我需要类似的东西。

如何在普通节点中执行此操作?

我找不到执行此操作的现有npm模块。我还检查了the fs module,但是找不到我可以使用的任何东西。

我需要这样的内容:function hasChanged(file1, file2) { /* ... */ },但是我不确定如何比较文件。

更新
使用到目前为止给出的建议,这个问题似乎很容易编写自己的代码,所以我正在这样做。但是,如果您知道已经执行了此操作的节点模块,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

您尝试使用fs.watch吗?

仍然可以使用fs.watchFile(),它使用统计信息轮询,但是这种方法较慢且可靠性较低。

如果要检查2个文件,请尝试将其哈希码与md5一起使用。

答案 1 :(得分:1)

您可以使用fs.stat函数获取文件信息,并比较mtime以查看它们是否不同。我还建议您查找gulp-change的源代码,它实际上只有几行代码。

https://github.com/sindresorhus/gulp-changed?files=1