fs手表方法的差异

use*_*010 0 watch node.js

node.js文件系统监视方法之间的区别是什么:

  • watch(filename,[, options],(filename) => {} )节点监视包)
  • fs.watch(filename[, options][, listener])
  • fs.watchFile(filename[, options], listener)

添加更多,如果有的话

Par*_*lor 5

我一直在寻找有关此确切问题的信息,并遇到了这篇文章。

-简而言之的博客文章:

fs.watch()

  • 是较新的API,建议使用。
  • 使用操作系统支持的本机监视功能,因此不会浪费CPU等待时间。
  • 不支持所有平台,例如AIX和Cygwin。

fs.watchFile()

  • 是旧的API,不建议使用。
  • 定期调用stat(),因此即使没有任何更改也使用CPU。
  • 在任何平台上运行。

-不在博客文章中:

node-watch()

我自己没有使用过节点监视,但是通过查看它,我可以看到它扩展了fs.watch()并添加了递归功能。fs.watch()允许您监视目录中的更改,但是监视下面的所有目录将需要单独的调用。如果我不得不猜测,(我还没有尝试过)这些可能是相同的:

fs.watch(./project)

fs.watch(./project/assets)

fs.watch(./project/lib)

要么

node-watch(./project, { recursive: true })