当前位置: 首页 > 软件库 > 应用工具 > 文件管理器 >

Chokidar

跨平台文件查看器
授权协议 MIT
开发语言 JavaScript
所属分类 应用工具、 文件管理器
软件类型 开源软件
地区 不详
投 递 者 涂选
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Chokidar 是一个极简高效的跨平台文件查看器。

Node.js fs.watch:

  • 在 MacOS 上不报告文件名。
  • 在 MacOS 上使用 Sublime 等编辑器时根本不报告事件。
  • 经常报告事件两次。
  • 将大多数更改作为rename.
  • 不提供递归观察文件树的简单方法。
  • 不支持在 Linux 上递归观看。

Node.js fs.watchFile:

  • 在事件处理方面几乎同样糟糕。
  • 也不提供任何递归监视。
  • 导致 CPU 使用率高。

Chokidar 则解决了这些问题。

Chokidar 最初是为 Brunch(一种超快速的网络应用程序构建工具)制作的,现在已被用于微软的Visual Studio Code、gulp、karma、PM2、browserify、webpack、BrowserSync和许多其他软件。

Chokidar 仍然依赖于 Node.js 的核心 fs 模块,但是当使用fs.watch和fs.watchFile进行观察时,它对收到的事件进行了规范化处理,经常通过获取文件统计信息和/或dir内容来检查真相。

在 MacOS 上,Chokidar 默认使用暴露于 Darwin FSEvents API 的本地扩展。与大多数*nix平台上的kqueue等实现相比,这提供了非常有效的递归观察。Chokidar仍然需要做一些工作来规范以这种方式接收的事件。

在大多数其他平台上,基于fs.watch的实现是默认的,它避免了轮询并降低了CPU的使用率。请注意,chokidar会在指定的路径范围内递归地启动观察器,所以要谨慎行事,不要因为观察超过需要而浪费了系统资源。

  • 最近维护一个项目。每次改完东西,都要上传到服务器。然后有时候就忘记一些东西,于是就想有没有可以方法能监听文件的改变。然后我再利用程序把更改的文件一键上传到服务器。 于是就找到了nodejs 的chokidar模块。 然后利用redis的set集合。因为我们频繁更改。如果用普通的字符 会增加比较。set是一个集合,里面的元素都是不重复的。正好可以利用这个特性。帮我们记录更改的记录文件。删除的时候,然

  • github地址:https://github.com/paulmillr/chokidar chokidar API chokidar.watch(paths, [options])** 返回一个chokidar构造监听实例 参数: paths 一个字符串或者是一个数组,描述监听的文件或者文件夹的路径 对象数据类型 常用配置项: - persistent:bollean,与原生fs.watch一

  • 报错如下: Error: No version of chokidar is available. Tried chokidar@2 and chokidar@3. 原因分析: 没有可用的 chokidar 版本。试过 chokidar@2 和 chokidar@3 解决方案如下: 方案一: npm update --force 含义为强制更新软件包 方案二: npm update chokid

  • 这是在一次更换电脑为云电脑后运行项目中出现的错误,虽然报错,但是项目依旧可以运行,并且浏览器可以打开网页,就是更改代码后,ctrl + s,代码不会运行了,很麻烦,网上都是linux的攻略,没有Windows的,找了很久,终于找到了可用的解决方法,拿走不谢。 本质原因:由于文件系统监视器 chokidar 在某些情况下无法正常工作而引起的。 具体原因:项目代码和编译软件不在一个地方引起的,比如,n

  • 动态修改配置文件的伪代码实现如下: 启动时合并配置 const config4code = /home/code/config/代码中的配置.js; const config4env = /home/env/prod/config/生产环境的配置.js; const config4cluster = /home/cluster/config/集群中的配置.js global.config = Ob

  • 项目地址:https://github.com/paulmillr/chokidar 安装 npm install chokidar 监控当前运行目录 const chokidar = require('chokidar'); // One-liner for current directory chokidar.watch('.').on('all', (event, path) => {

  • 执行npm run serve启动VUE项目时报错: Error: No version of chokidar is available. Tried chokidar@2 and chokidar@3. You could try to manually install any chokidar version. chokidar@3: Error: Cannot find module 'c

  • react项目搭建遇到的报错 No version of chokidar is available. Tried chokidar@2 and chokidar@3. 将npm版本降低到7.5.4 npm install -g npm@7.5.4 参考: https://github.com/facebook/create-react-app/issues/10811

  • 临时的解决方法是在终端输入以下命令,但是在重启系统后,这个临时改动就没有作用了。 echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 究其原因是Linux系统设置的监控句柄数不够, 这里需要修改limit.conf配置文件。vi打开/etc/security/limit.c

 相关资料
  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • 问题内容: 我创建了一个小的python脚本。我将pickle文件保存在Linux上,然后在Windows上使用它,然后再次在Linux上使用它,但是现在该文件在Linux上不起作用,但是在Windows上可以正常工作。是这样,以便python是coss平台的,但pickle文件不是。有什么解决办法吗??? 问题答案: Python的泡菜是完全跨平台的。 这可能是由于Windows和Linux之间

  • 我需要在我的应用程序中为不同的标签指定不同的FontFamily。我需要使用默认字体(如Android的Roboto和iOS的Helvetica)及其修改(如轻、中、粗)。据我所知,我应该使用Roboto-Light和Helvetica-Light来获得字体的轻版本(中号和粗体相同)。除了这个需求之外,我还需要在XAML中设置字体(如文档中所描述的),所以我最终得到了以下代码 然而,在Androi

  • 作为第三代数据统计和分析平台,诸葛实现了对用户的实名(实账号)分析,并主张互联网产品分析以用户为中心的分析思想并提供了一系列方法论。对用户的唯一标识来源于企业自身数据库对用户的唯一识别符,也即诸葛底层数据采集是以用户为中心的采集,我们提供了跨平台分析版本, 满足企业以用户为中心的整体的分析需求,不同平台相同业务价值下的用户完整的故事解读(例如:分析电商的用户在PC端浏览产品,在移动端支付的转化率)

  • 说明 由于在跨端开发中,必不可少的会遇到不同端需要有不同实现的情况。参考滴滴chameleon中的多态,megalo中实现了类似的跨平台兼容方案。需要使用时,请保证@megalo/target的版本号大于或等于0.7.2。 js的跨平台兼容 megalo中下面两种形式的引用会被特殊处理: [path-to-name]/[name]/index.mpjs [path-to-name]/[name]

  • 问题内容: 如何以跨平台方式处理类中的文件名,以使其在Windows和Linux上都能正常工作? 例如,我编写了在Windows上可以完美运行的代码,但是在Ubuntu Linux上却没有创建文件: 问题答案: Windows使用反斜杠。Linux使用Slash。Path.Combine设置正确的符号: Path.Combine方法-MSDN

  • 需求:在外打工租房,与朋友合租。吃住费用管理麻烦。故利用业余时间开发此小软件。 工具:gcc,codeblocks,wxwidgets,opencv,sqlite(本人常用到开发工具) 特点:跨平台(win+linux) 使用说明:无。完全根据本人思路设计而成。暂时没有文档。 SVN源代码:http://householdmanagement.googlecode.com/svn/trunk/。c

  • 问题内容: 我想在Unix和Windows上使用特定于平台的目录。请看一下代码: 这个输出 我想第二次打电话给(windows)类似 是否可以告诉我在Windows上运行的程序使用Windows分隔符?还是应该始终将反斜杠转换 为正斜杠()?这里首选的策略是什么? 问题答案: 我看到“问题”在哪里。在golang-nuts上的讨论为我提供了提示,该提示始终使用并且是用于依赖平台的操作的函数。 在W