phpstorm 中有 file watcher 工具,可以监视指定文件/目录,发现变化后执行指定命令。我一直用此功能自动编译 less 文件,不过前段时间忽然出了问题,每次一编译就会导致假死。
查了配置文件没问题、目标 less 文件内容没问题、指定的命令及参数没问题、文件系统权限没问题、甚至简单的 less 也能编译成功,不过编译项目中依赖的 bootstrap 就会出问题。虽然目标文件也成功生成了, IDE 也完全失去响应。还好项目依赖的 less 配置为生成一个 css 文件,于是这段时间暂时手动终端编译也并不麻烦。
近期考虑将 css 部分拆分,想着写个编译脚本处理拆出的文件,顺便找了下第三方文件监视工具,于是发现了利器『 ** fswatch ** 』。
此利器可以同样可以监视文件/目录变化,甚至可以给出具体变化的事件(如新建、删除、元信息变更等)及事件时间等信息。旧版在发现变化后可以直接执行给定命令,但新版为了支持监视多个文件/目录再加上一些实现层面的原因取消了此功能。不过利用管道还是很容易达到原来的目的。
$ fswatch -o path | xargs -n1 -I{} program
试了下果然又可以丝般爽滑的编码了 XD