关于 watchexec
watchexec 在文件系统发生变化时自动执行指定命令。支持按文件类型、路径或扩展名过滤监听,并通过防抖机制避免连续触发。适用于开发工作流的自动化,如测试、构建或编译。
主要功能
- 01监听文件变化并触发命令执行
- 02按扩展名、路径或模式过滤文件监听
- 03可配置的防抖延迟减少重复执行
适用场景
- 01在代码变化时自动运行测试或构建
- 02为编码 Agent 实现文件变化的实时响应机制
- 03简化开发工作流中的重复性任务
安装
选择你的系统或包管理器,复制命令到终端运行。
$
安装完成后运行watchexec --version确认安装成功。
命令示例
常用命令按使用顺序排列。
01
02
详细介绍
Watchexec
软件开发常常需要反复运行相同的命令。真无聊!
watchexec 是一个简单、独立的工具,会监视某个路径,并在检测到修改时运行命令。
使用场景示例:
- 自动运行单元测试
- 运行代码检查工具/语法检查工具
- 重新构建构件
功能
- 调用和使用简单,不需要使用涉及
xargs的晦涩命令行 - 可在 OS X、Linux 和 Windows 上运行
- 监视当前目录及其所有子目录中的变更
- 将多个文件系统事件合并为一个,适用于保存时会使用交换/备份文件的编辑器
- 加载
.gitignore和.ignore文件 - 使用进程组来持续跟踪派生进程
- 通过环境变量或 STDIN 提供发生变更的路径
- 不需要语言运行时,不依赖任何特定语言或生态系统
- 还有更多!
快速开始
监视当前目录及其所有子目录中的所有 JavaScript、CSS 和 HTML 文件,在检测到变更时运行 npm run build:
$ watchexec -e js,css,html npm run build
当当前目录(及其所有子目录)中的任何 Python 文件发生变更时,调用/重启 python server.py:
$ watchexec -r -e py -- python server.py
更多用法示例:参见 CLI README!
安装
- 使用 你的包管理器,适用于 Arch、Debian、Homebrew、Nix、Scoop、Chocolatey……
- 使用 Binstall 安装二进制文件:
cargo binstall watchexec-cli - 安装 Github 提供的预构建二进制包
- 使用 Cargo 从源代码安装:
cargo install --locked watchexec-cli
所有选项的详细说明:参见 CLI README,
在线帮助(watchexec -h、watchexec --help 或 watchexec --manual),
以及手册页。
搭配使用
Watchexec 与以下工具搭配使用效果很好:
扩展
- watchexec 库:用于创建更多基于 watchexec 的专用工具。
- watchexec-events:watchexec 的事件类型。
- watchexec-signals:watchexec 的信号类型。
- watchexec-supervisor:进程生命周期管理器(watchexec 中负责 exec 的部分)。
- clearscreen:用于在所有平台上清空(终端)屏幕。
- process wrap:用于在进程组中运行命令。
- 忽略文件:用于查找、解析和解释忽略文件。
- 项目来源目录:用于查找项目的来源目录。
- notify:用于响应文件修改(第三方工具)。
下游项目
watchexec 及相关 Crate 的部分下游项目:
cargo watch:专为 Rust/Cargo 项目打造的监视工具。- cargo lambda:用于 Rust 驱动的 AWS Lambda 函数的开发工具。
- create-rust-app:Rust+React Web 应用模板。
- devenv.sh:使用基于 nix 的声明式配置的开发环境。
- dotter:点文件管理器。
- ghciwatch:专为 Haskell 项目打造的监视工具。
- tectonic:TeX/LaTeX 排版系统。
评论
支持 Markdown